预定义变量
预定义变量 | 作用 |
---|---|
$? | 最后一次执行命令的返回状态。如果正确执行,则返回0;如果返回为非零(具体数值由命令决定),则上一条命令执行不正确 |
$$ | 返回当前进程的PID |
$! | 返回后台运行的最后一个进程的PID |
|
|
可以通过一个简单的shell来展示一下12345#!/bin/bashehco "dang qian de PID: $$"find / hello.sh &echo "hou tai de PID: $!"
位置参数变量
位置参数变量本质上还是预定义变量
位置参数变量 | 作用 |
---|---|
$n | n 为数字,$0 代表命令本身,$1-$9 代表第一到第九个参数,十以上的参数需要用大括号包含,如 ${10} |
$* | 这个变量代表命令行中所有的参数,$* 把所有的参数看成一个整体 |
$@ | 这个变量也代表命令行中所有的参数,不过 $@ 把每个参数区分对待 |
$# | 这个变量代表命令行中所有参数的个数 |
例子1
|
|
|
|
例子2
|
|
|
|
例子3
|
|
接收键盘输入
|
|
read.sh
123456789101112131415#!/bin/bashread -p "please input your name:" -t 30 nameecho $name#如果超过30秒不输入,就终止当前命令read -p "please input your passwd:" -s passwdecho -e "\n"echo $passwd#输入的值是隐藏的,看不见的,但是在sh里面还是可以获取到的,并且可以输出的read -p "please input your sex [M/F]:" sexecho -e "\n"echo $sex#只能输入一个字符,且输入之后立马执行