程序执行的返回值:
$? :最后一次执行命令的返回状态,如果正确执行,则返回0;
如果返回为非零(具体数值由命令决定),则上一条命令执行不正确
执行完一条命令之后,立马敲入echo $?,可得到返回值。
例如:ls 执行之后,再敲入echo $?,可以得到0
前面说到的逻辑或:|| -->ls || echo yes ;前面一条语句正确执行,才执行后一条语句。这里就是通过执行命令的返回值来判断的
逻辑与:&& --> ls qwe && echo no 也是同样的道理
$$:返回当前进程的PID号;
$!:返回后台的进程PID号;
可以通过一个简单的shell来展示一下:
sl.sh
#!/bin/bash
ehco "dang qian de PID: $$"
find / hello.sh &
echo "hou tai de PID: $!"
chmod 755 sl.sh,然后再执行:./sl.sh;可以得到当前的测试的结果
read
read -n
read -p “please input name ” name #-p表示输出提示信息 read [选项] 变量名
read -t 30 #-t 表示等待时间单位为秒 -t 30 表示30秒,若30秒后没有输入数据终止执行脚本
read -s #隐藏信息
echo -e “\n” 换行符
read.sh:
#!/bin/bash
read -p "please input your name:" -t 30 name
#等下输入,如果超过30秒不输入,就终止当前命令
echo $name
read -p "please input your password:" -s pwd
#输入的值是隐藏的,看不见的,但是在sh里面还是可以获取到的,并且输出的
echo -e "/n"
echo $pwd
read -p "please input your sex [M/F]:" -n 1 sex
#意思就是只能输入一个字符,且输入之后立马执行
echo -e "/n"
echo $sex
执行
chmod 755 read.sh
./read.sh