Shell编程:Linux系统环境程序设计之路

发表于:2012-3-13 10:08

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:korn    来源:51Testing软件测试网采编

分享:

  输出结果说明var1为空而var2却有值,这正是export起的作用,把var2变成了一个环境变量。

  再看个例子:

#!/bin/bash
echo $var1
echo $var2
echo $var3
exit 0
//////////////////////////

//~ set-a_s
#!/bin/bash
set -a
var1="var1"
var2="var2"
var3="var3"
./set-a2_s
exit 0
//////////////////////////

//~ set-a2_s
输出:
var1
var2
var3

  set -a的作用就是把它之后声明的所有变量都export

  printf:

  和C语言里的printf用法很相似的一个命令,使用非常方便。

set:

//~ set_s
#!/bin/bash
fun1()
{
echo "a b c d"
}
set $(fun1)
echo $1
echo $(date)
set $(date)
echo $1
exit 0
///////////////////////输出: a 2008年 03月 06日 星期四 03:57:55 CST 2008年

  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还有非常多的功能文中没有提到,需要大家发现问题后再自己去解决。

22/2<12
重磅发布,2022软件测试行业现状调查报告~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计

法律顾问:上海漕溪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2023
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号