版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/answer100answer/article/details/81319103
1. 读取文件
参考:
在while read line里怎样保留行首的空格
作用域、双引号
两种写法的变量作用域不同
- 方法1:
会自动消除行首空格,do
中的变量外部不能拿到
while read line
do
echo "$line" #不能保留行首空格
str1=${str}"$line""\n" #拼接字符串,但是str1不能在while外得到
done < testDate.txt
echo $str
- 方法2:
外部可以拿到str
变量,$line会保留原样输出
for line in `cat testDate`#反引号,表示命令
do
str=${str}"$line""\n"
echo "$line"
done
注意:是否加双引号很有讲究。
1. cat testDate
这里就不能加双引号,加了以后整个文件就成了一个字符串了。
2. $line
是需要加""
的"$line"
,表示原样输出。
反引号
表示执行命令,与$()
同
VAR=`java -jar "$JAR_PATH" "$str"`
或
VAR=$(java -jar "$JAR_PATH" "$str")
分隔符
分隔符作用在给个循环前边,如for
IFS_BAK=$IFS # 备份IFS
IFS=$'\n' #以\n分隔
...
IFS=$IFS_BAK
IFS='\n' //将字符\和字符n作为IFS的换行符。
IFS=\n //与上面一样。
IFS=$'\n' //正真的使用换行符做为字段分隔符。
//如果IFS='\n':;"
//这个赋值会将反斜杠、n、冒号、分号和双引号作为字段分隔符。