49 lines
		
	
	
	
		
			933 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
	
		
			933 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
# shcat.bash
 | 
						|
# Author: Noah Friedman <friedman@prep.ai.mit.edu>
 | 
						|
# Created: 1992-07-17
 | 
						|
# Last modified: 1993-09-29
 | 
						|
# Public domain
 | 
						|
 | 
						|
# Conversion to bash v2 syntax done by Chet Ramey
 | 
						|
 | 
						|
# Commentary:
 | 
						|
# Code:
 | 
						|
 | 
						|
#:docstring shcat:
 | 
						|
# Usage: shcat {file1} {file2} {...}
 | 
						|
#
 | 
						|
# Like `cat', only this is all inline bash. 
 | 
						|
#:end docstring:
 | 
						|
 | 
						|
###;;;autoload
 | 
						|
function shcat ()
 | 
						|
{
 | 
						|
 local IFS=""
 | 
						|
 local line
 | 
						|
 local file
 | 
						|
 local exitstat=0
 | 
						|
 
 | 
						|
    if [ $# -eq 0 ]; then
 | 
						|
       while read -r line; do
 | 
						|
          echo "${line}"
 | 
						|
       done
 | 
						|
       return 0
 | 
						|
    else
 | 
						|
       for file in "$@" ; do
 | 
						|
          if [ -r "${file}" ]; then
 | 
						|
               while read -r line; do
 | 
						|
                  echo "${line}"
 | 
						|
               done < "${file}"
 | 
						|
          else
 | 
						|
             # This will cause the error to be printed on stderr
 | 
						|
             < "${file}"
 | 
						|
             exitstat=1
 | 
						|
          fi
 | 
						|
       done
 | 
						|
       return ${exitstat}
 | 
						|
    fi
 | 
						|
}
 | 
						|
 | 
						|
provide shcat
 | 
						|
 | 
						|
# shcat.bash ends here
 |