linux下shell script学习(一)

对于以后想从事嵌入式软件开发工作的人来说,至少要能看懂shell脚本,最好能自己编写shell脚本,因为当你在linux操作系统做开发你会发现,shell脚本能够解决你总是重重复复做的一些事,给你节约很多宝贵的时间!那么什么是shell script呢?其实shell脚本是利用shell的功能所写的一个“程序”,这个程序是使用纯文本文件,将一些shell的语法与命令写在里面,搭配正则表达式,管道命令与数据流重定向,达到我们想要的处理目的。shell script本质上是shell命令的集合。

下面我们来学习最简单的shell script编写与执行:

编写:

[zoulei@CentOS test]$ vim test.sh
  1 #!/bin/sh
  2 a="hello world!"
  3 num=2
  4 echo "a is : $a num is ${num}"

***************************************************************************************************************************************************************************************************

注意:第一行#!/bin/sh声明这个script使用的shell名称,因为我们使用的是bash,所以必须要以#!/bin/sh来声明这个文件内的语法使用bash的语法,那么当这个程序被执行时,它就能加载bash的相关配置文件,并且执行bash来使下面的命令能够执行。

***************************************************************************************************************************************************************************************************

执行:

[zoulei@CentOS test]$ sh test.sh
a is : hello world! num is 2
[zoulei@CentOS test]$ chmod a+x test.sh
[zoulei@CentOS test]$ ./test.sh
a is : hello world! num is 2nd
[zoulei@CentOS test]$ source test.sh
a is : hello world! num is 2

******************************************************************************************************************************************************************************************************

   注意:这里执行test.sh脚本文件有三种方式,一种是sh test.sh,这里的sh命令其实是bash的符号连接。还有一种是当作可执行文件来执行,不过执行之前得将test.sh文件赋予可读可写可执行权限才行,第三种是source test.sh,它与前面两种的区别是,当我们写个脚本来改变环境变量,前面两种只是在子进程bash中执行,而第三种则会在父进程中执行,最终会使环境变量生效的是第三种执行方式。

******************************************************************************************************************************************************************************************************

下面在运用条件判断式if...then...fi 编写执行一个shell脚本:

编写与执行

[zoulei@CentOS test]$ vim test.sh
#!/bin/bash
echo -e "Hello world"
if [ "SHELL" = "/bin/bash" ];then
echo "your login shell is bash"
else
echo "your login shell is not bash but $SHELL"
fi
[ -f "/etc/shadow" ] && echo "this computer uses shadow passwords"
if [ -f "/etc/shadow" ];then
echo "电脑密码"
else
echo "并没有"
fi
[zoulei@CentOS test]$ sh test.sh
Hello world
your login shell is not bash but /bin/bash
this computer uses shadow passwords
电脑密码
**************************************************************************************************************************************************************************
注意:1.中括号【】使用格外小心,”[“后面必须跟一个空格,再跟“”,"】"前面也必须紧跟一个空格,否则会出错。

           2.echo语句也必须紧跟一个空格,不然也会出错。

           3.[ -f "/etc/shadow" ]语句是判断/etc/shadow是否是一个文件。

           4.上面的shell脚本中只有一个判断式,可以这样看:

       if [ 条件判断式 ]; then

           当判断式成立时,可以进行命令的工作内容;

       fi         <==将if反过来写,成为fi,结束if 之意!

           5.等号"="两边都必须要有空格,否则出错,在bash中一个等号与两个等号结果是一样的,通常一个等号代表“变量的设置”,两个等号则是代表

             “逻辑判断”,由于中括号内重点在于“判断而非设置变量”,因此最好使用“==”较佳!

***************************************************************************************************************************************************************************


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值