テキストファイルを配列に読み込む(bash)

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`
  7 b=`expr \( $y + $z \) / $x`
  8 echo "$a"
  9 echo "$b"