输出结果说明var1为空而var2却有值,这正是export起的作用,把var2变成了一个环境变量。
再看个例子:
#!/bin/bash //~ set-a_s //~ set-a2_s |
set -a的作用就是把它之后声明的所有变量都export
printf:
和C语言里的printf用法很相似的一个命令,使用非常方便。
set: //~ set_s |
date的输出是几个由空格分隔的值,set的作用能分隔出每个域。
shift:
就是让$2变$1,$3变$2,依此类推。
trap:
非常有用的一个命令,用于指定接受到信号后进行的动作,系统定义了非常多的信号类型,用trap -l命令可以查看所有的信号。
常见的几个信号有:
INT(2) 中断,按下ctrl+c组合键引发的
QUIT(3) 退出,按下ctrl+\引发
例子:
//~ trap_s #!/bin/bash trap var=2 INT echo "please enter ctrl+c" var=1 while [ $var = 1 ] do echo "in while" sleep 1 done exit 0 ///////////////////////// |
这个例子在我按下ctrl+c后改变了var的值,所以跳出循环,程序结束。
shell下的程序设计非常强大,你可以用它做出很多小工具,让你的使用linux系统更加流畅。shell还有非常多的功能文中没有提到,需要大家发现问题后再自己去解决。