一、read命令
从键盘读取数据,赋值给变量
Ex1:
read name
Ex2:
read –p "请输入密码:" –n 6 -t 5 password
echo -e "\npassword is $password"
注1:当输入的词组个数大于需要的参数个数,则多出的词组将被作为整体为最后一个参数接收
参数说明:
-p:输出提示文字
-n 输入字符串长度,达到此长度,自动结束
-t 输入限制时间
-s 隐藏输入内容
-e 使转义功能生效
二、expr命令
对整数型变量进行算术运算
Ex:
expr 3 + 5
expr 3 \* 5
Ex2:
expr ` expr 5 - 1` / 2
num=` expr $var / 2`
三、echo命令
用于字符串的输出显示
echo $var
echo It is a test file
开启转义 : -e
echo -e “ hello \n world”
echo -e “hellokitty \c”
\n #换行
\c #不换行
四、printf命令
与echo功能相同,用来输出,功能更强大,如格式化字符串,指定字符串的宽度,左右对齐方式,默认不换行,可以手动添加\n
语法:printf format-string [arguments……...]
说明:format-string: 格式控制字符串 ; arguments: 参数值列表
Ex:
printf “%d %s\n” 1 “abc”
printf %s abcdef
printf %s abc def #此格式只指定了一个参数,但是多出的参数仍然会按照该格式输出,格式被重用
printf “%s %s %s\n” a b c d e f g h I j
printf “%s and %d” #没有参数时,%s为空,%d为0
%d %s %c %f?格式替代符详解:
d: Decimal 十进制整数?-- 对应位置参数必须是十进制整数,否则报错!
s: String 字符串?-- 对应位置参数必须是字符串或者字符型,否则报错!
c: Char 字符?-- 对应位置参数必须是字符串或者字符型,否则报错!
f: Float 浮点?-- 对应位置参数必须是数字型,否则报错!
五、test命令
用于测试变量是否相等、是否为空、文件类型等
格式:test 测试条件
整数测试
test v1 -eq v2 测试两个数是否相等
test v1 -gt v2 测试是否v1>v2
test v1 -ge v2 测试是否v1>=v2
test v1 -lt v2 测试是否v1<v2
test v1 -le v2 测试是否v1<=v2
test v1 -ne v2 测试两个数是否不相等
字符串测试
test str1 = str2 测试字符串是否相等
test str1 != str2 测试字符串是否不相等
test str1 测试字符串是否不为空
test -n str1 测试字符串是否不为空
test -z str1 测试字符串是否为空
文件测试
test -d file 指定文件是否目录
test -f file 指定文件是否是常规文件
test -x file 指定文件是否可执行
test -r file 指定文件是否可读
test -w file 指定文件是否可写
test -a file 指定文件是否存在
test -s file 文件的大小是否非0
六、shift命令
参数左移,每执行一次,参数序列顺次左移一个位置,$#的值少一个,多数用于分别处理每一个参数,移出去的参数不再可用
ls -l p1 p2 p3 p4 p5
p2 p3 p4 p5
p3 p4 p5
p4 p5
p5