目录
1. 脚本执行
1.1. 脚本执行
1.1.1. 脚本执行方式
- 脚本执行的方式:
source filename 与 sh filename 及./filename执行脚本三者的区别? 1. 当shell脚本具有可执行权限时,用sh filename与./filename执行脚本是没有区别得。 ./filename是因为当前目录没有在PATH中,所有"."是用来表示当前目录的。 2. sh filename 重新建立一个子shell,在子shell中执行脚本里面的语句, 该子shell继承父shell的环境变量,但子shell新建的、改变的变量不会被带回父shell, 除非使用export。 3. source filename:这个命令其实只是简单地读取脚本里面的语句依次在当前shell里面执行, 没有建立新的子shell。那么脚本里面所有新建、改变变量的语句都会保存在当前shell里面。
参考:
1.2. 脚本多进程
1.2.1. 多进程 实现
UID:进程拥有者
PID:进程ID
PPID:上级父程序的ID
## 实现程序后台执行
for循环中使用 &
1.2.2. 定时停止
ping 192.168.1.1 & { sleep 10; kill $! & } – sleep 无法使用多进程
2. 参数传递
2.1. 外置参数
2.1.1. 执行脚本
- 常用参数
$#: 传入脚本的参数个数; $0: 脚本自身的名称; $1: 传入脚本的第一个参数; $2: 传入脚本的第二个参数; $@: 传入脚本的所有参数; $*: 传入脚本的所有参数; $$: 脚本执行的进程id; $?: 上一条命令执行后的状态,结果为0表示执行正常,结果为1表示执行异常; 其中$@与$*正常情况下一样,当在脚本中将 $* 加上双引号作为 “$*” 引用时, 此时将输入的所有参数当做一个整体字符串对待。 比如输入参数有a b c三个参数,则“$*”表示“a b c”一个字符串。
参考: