Linux伊甸园论坛 » Shell编程 » 如何让 read 不自动去掉开头的空格?
clark
版主
Clark J. Wang
-(dearvoid@LinuxEden:Forum)-(~/tmp)- [26096 0] ; cat cat.sh #!/bin/bash file=$1 if [ ! -f "$file" ]; then exit 1 fi lineno=0 while read -r line; do printf "%6u %s\n" $((++lineno)) "$line" done < "$file" -(dearvoid@LinuxEden:Forum)-(~/tmp)- [26096 0] ; ./cat.sh cat.sh 1 #!/bin/bash 2 3 file=$1 4 if [ ! -f "$file" ]; then 5 exit 1 6 fi 7 8 lineno=0 9 while read -r line; do 10 printf "%6u %s\n" $((++lineno)) "$line" 11 done < "$file" -(dearvoid@LinuxEden:Forum)-(~/tmp)- [26096 0] ; o
查看个人网站
查看详细资料
TOP
超级版主
认证会员
注册用户
原帖由 TUDOU01 于 2007-8-18 19:35 发表 done < "$file" 是什么意思?
-(dearvoid@LinuxEden:Forum)-(~/tmp)- [21645 0] ; cat cat.sh #!/bin/bash file=$1 if [ ! -f "$file" ]; then exit 1 fi saveIFS="$IFS" IFS=$'\n' lineno=0 while read -r line; do printf "%6u %s\n" $((++lineno)) "$line" done < "$file" IFS="$saveIFS" -(dearvoid@LinuxEden:Forum)-(~/tmp)- [21645 0] ; ./cat.sh cat.sh 1 #!/bin/bash 2 3 file=$1 4 if [ ! -f "$file" ]; then 5 exit 1 6 fi 7 8 saveIFS="$IFS" 9 IFS=$'\n' 10 lineno=0 11 while read -r line; do 12 printf "%6u %s\n" $((++lineno)) "$line" 13 done < "$file" 14 IFS="$saveIFS" -(dearvoid@LinuxEden:Forum)-(~/tmp)- [21645 0] ; bye