到output上
3 假设我们使用子shll或反引用的方法将命令的输出读入一个变量中,可以将它放入双引号中,以保留空格和换行符
1.13 字段分割符和迭代器
1 内部字段分割符IFS是shell脚本中一个重要的概念,默认的IFS是空白字符(换行符,制表符或者空格)
2 我们可以轻松的生成不同序列
echo {1..50} 这样能够生成一个从1到50的序列
echo {a..z} 这样能够生成a到z的序列
3 for循环
for i in list
do
statements
done
4 while循环
while condition
do
statements
done
1.14 比较和测试
1 if条件
if condition
then
statements
elif condition
statements
else
statements
fi
2 我们可以使用逻辑运算符来减少if else的使用
[ condition ] && action 如果condition条件为真,那么执行action
[ condition ] || action 如果condition条件为假,那么执行action
3 算术比较
-eq: 相等
-ne: 不相等
-gt: 大于
-lt: 小于
-ge: 大于等
-le: 小于或等于
4 文件系统相关测试
[ -f $file ] 如果给定的文件是普通文件则返回真
[ -x $file ] 如果给点的文件具有执行权限则返回真
[ -d $file ] 如果给点的文件是目录则返回真
[ -e $file ] 如果文件file存在则返回真
[ -c $file ] 如果给定的文件是字符设备文件则返回真
[ -b $file ] 如果给点的文件是块设备文件则返回真
[ -w $file ] 如果给点的文件具有可些权限则返回真
[ -r $file ] 如果文件file具有可读权限则返回真
[ -L $file ] 如果给点的文件file是一个符号链接文件则返回真
5 字符串比较
1 使用字符串比较的时候,最好使用双中括号,因为有时候采用单个中括号会产生错误
2 [[ $str1 = $str2 ]],当str1等于str2的时候,返回真
[[ $str1 != $str2 ]],当str1不等于str2的时候,返回真
[[ $str1 > $str2 ]],当str1大于str2的时候,返回真
[[ $str1 < $str2 ]],当str1小于str2的时候,返回真
[[ -z $str ]]如果str是空字符串返回真
[[ -n $str ]]如果str是非空字符串则返回真
6 test命令同样可以用来执行条件检测,有助于避免过多的括号