2015年7月12日星期日

shell学习笔记-输入输出,重复执行命令,字段分隔符,比较与测试

一 输入输出
子shell通过()操作符进行定义,子shell的改变不会影响主shell
ps:通过引用子shell的方式保留空格和换行符时,需要使用双引号 "(..)"
#管道
cmd1 | cmd2   #e.g.   ls | cat -n >out.txt
#子shell
cmd_output=$(ls | cat -n)
#反引用
cmd_output=`cmd`
二 运行命令直至执行成功

repeat(){while :; do &@ && return;  sleep 20; done } 
#&@表示传入的命令  例如
repeat wget -c http://....
true作为二进制文件实现,因此使用:命令,:命令默认返回为0的退出码

三 字段分隔符和迭代器

内部字段分隔符为IFS
data="one,two,three,four"
old_ifs=$IFS
IFS=,
for item in $data;
do
        echo $item
done
IFS=$old_ifs
四 比较与测试
-a逻辑与    condition1 -a condition2 
if [[  condition1 ]] && [[ condition2 ]]
-o逻辑或    condition1 -a condition2  
if [[  condition1 ]] || [[ condition2 ]]

没有评论:

发表评论