Linux笔记之shell脚本2:初次写shell脚本

PART 1:

一个完整的shell脚本包括脚本声明、注释信息(可以没有)、可执行语句

脚本声明:告知系统用哪种shell来解释

注释信息:对脚本功能部分的介绍,执行脚本时会自动忽略,可不写

可执行语句:执行的具体指令


[root@okaka Desktop]# vim test.sh

编辑如下:

#!/bin/bash
#my first script
pwd
ls -al


保存后有3种方法执行脚本:

1.脚本文件路径:   ./test.sh

2.sh脚本文件路径:    sh test.sh

3.source脚本文件路径:     source test.sh


后两种都可以顺利执行:

[root@okaka Desktop]# sh test.sh 
/root/Desktop
total 8
drwxr-xr-x.  2 root root   20 Sep 19 12:46 .
dr-xr-x---. 17 root root 4096 Sep 19 12:46 ..
-rw-r--r--.  1 root root   40 Sep 19 12:41 test.sh
[root@okaka Desktop]# source test.sh 
/root/Desktop
total 8
drwxr-xr-x.  2 root root   20 Sep 19 12:46 .
dr-xr-x---. 17 root root 4096 Sep 19 12:46 ..
-rw-r--r--.  1 root root   40 Sep 19 12:41 test.sh


但第一种直接执行会提示没有权限:

[root@okaka Desktop]# ./test.sh
bash: ./test.sh: Permission denied

所以需要为该脚本设置可执行权限才能运行(尚且不知道此命令的含义,日后深究,或者等评论解答偷笑):

[root@okaka Desktop]# chmod u+x test.sh 

然后就可以运行了:

[root@okaka Desktop]# ./test.sh 
/root/Desktop
total 8
drwxr-xr-x.  2 root root   20 Sep 19 12:46 .
dr-xr-x---. 17 root root 4096 Sep 19 12:46 ..
-rwxr--r--.  1 root root   40 Sep 19 12:41 test.sh



PART 2:

上面的例子虽然可以执行,但并没有参数传进脚本执行,我们尝试加入参数进去
修改test.sh:
#!/bin/bash
#my first script
echo "script name:$0"
echo "have $# params:$*"
echo "the 1st param is $1, 5th param is $5"

之后执行:

[root@okaka Desktop]# ./test.sh aaa bbb ccc ddd eee fff
script name:./test.sh
have 6 params:aaa bbb ccc ddd eee fff
the 1st param is aaa, 5th param is eee


可以看出:

$0是指当前执行的脚本名字

$1,$2,$3...及以后的是指用户输入的参数位置

$#是指用户所输入的参数个数

$*是指所有输入参数的值

另外$?用来判断上一条命令是否执行成功:0为成功,1为失败













评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值