处理用户输入
1.命令行参数
./addem 10 30
本例向脚本addem传达了两个命令行参数(10,30)
bash shell 会将一些成为位置参数的特殊变量分配给输入到命令行中
的所有参数。
$0时程序名,$1是第一个参数,$2是第二个参数,以此类推知道$9第九
个参数
2.特殊参数变量
$#含有脚本运行时携带的命令行参数的个数
$* $@变量可以用来抓取命令行上提供的所有参数。前者把所有参数当作
单个参数,而后者会单独处理每个参数。
3.移动变量
bash shell工具箱中另一件工具是shift命令,shift命令会根据它们相
对位置来移动命令行参数。
4.将选项标准化
-a 显示所有对象
-c 生成一个机数
-d 指定一个目录
-e 扩展一个对象
-f 指定读入数据的文件
-h 显示命令的帮助信息
-i 忽略文本大小写
-l 产生输出的长格式版本
-n 使用非交互模式
-o 将所有输出重定向到的指定的输出文件
-q 以安静模式运行
-r 递归地处理目录和文件
-s 以安静模式运行
-v 生成详细输出
-x 排除某个对象
-y 对所以问题回答yes
5.获得用户输入
read命令从标准输入(键盘)或另一个文件描述符中接受输入。在收到
输入后,read命令会将数据放进一个变量。
-p “Please enter your age” 则会在终端上提示输入你的年龄
-t 指定了read命令等待输入的秒数,当计数器过期后,read命令会返回
一个非零退出状态码
-s 选项可以避免在read命令输入的数据出现在显示器上