array=(word)と書くとカッコの中が単語に分割され それぞれの単語が配列arrayの要素として格納される IFSを改行のみのしておくと、1行が1要素の配列になる #!/bin/sh #linenum.sh if [ $# -ne 1 ]; then echo "Usage: linenum_bash.sh filename" exit 1 fi IFS=$'\n' #ファイルを配列に読み込む file=(`cat "$1"`) ln=0 for line in "${file[@]}"; do ln=`expr $ln + 1` printf '%3d %s\n' "$ln" "$line" done $ ./linenum_bash.sh arith.sh 1 #!/bin/sh 2 #arith.sh 3 x=5 4 y=9 5 z=13 6 a=`expr $x \* $y`