Shell学习03--echo命令,printf命令,test命令教程
Shell的命令
1.Shell–echo命令
语法:
echo [-option] 字符串(String)
显示普通字符串
例子:
echo "This is Bunny's test"
echo This is Bunny's test
双引号可以省略,实现效果与上方一致
echo的参数:
- -n 不要在最后换行
- -e 显示转义字符
- -E不显示转义字符(默认)
\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\v 与\f相同;
\ 插入\字符;
\nnn 插入nnn(八进制)所代表的ASCII字符;
显示变量
举例:
在变量名之前加入$
name="BunnyDuudu"
echo "$name is best"
进行转义字符测试
echo -e "OK! \c" # -e 开启转义 \c 不换行
echo "It is a test"
result:
OK! It is a test
显示结果定向至文件
把echo的输出写入test文件中
举例:
echo "This is a test" > file
echo "This is a test" >> file
会将文件中的原文字全部替换
会在文件原文字后追加,在最后写入
原样输出字符串,不进行转义或取变量(用单引号)
echo 'This is $name'
显示命令执行结果
echo `date`
显示date命令执行后的结果
echo后命令都得加
反引号,而不是单引号
2.Shell–printf命令
参照C语言的printf()函数的格式来编写的,所以大部分操作和C语言一致
语法:
printf format-string [arguments…]
参数说明:
- format-string:需要控制的字符串
- arguments:输入的参数
printf中的转义字符:
序列说明\a警告字符\b后退一个字符\c抑制(不显示)输出结果中任何结尾的换行字符(只在%b格式指示符控制下的参数字符串中有效),而且,任何留在参数里的字符、任何接下来的参数以及任何留在格式字符串中的字符,都被忽略(使换行符号失效)\f换页\n换行\r回车\t水平字符\\\字符
举例:
printf "%-10s %-8s %-4s\n" 姓名 性别 体重kg
printf "%-10s %-8s %-4.2f\n" Alex 男 66.6666
printf "%-10s %-8s %-4.2f\n" Zed 男 31.415926
printf "%-10s %-8s %-4.2f\n" Martha 女 99.812345
%s
代表输入字符串参数
%f
代表输入浮点数参数
%d
代表整型参数
%-10s
(-左对齐,没有则右对齐),指一个宽度为10个字符(一个中文2字符)
-4.2f
表示一个左对齐一个宽度为4个字符且小数点后保留两位小数的浮点数
姓名 性别 体重kg
Alex 男 66.12
Zed 男 48.65
Martha 女 47.99
3.Shell–test命令
用于检测某个条件是否成立,它可以进行数值、字符、文件三个方面的测试
数值测试:
参数说明-eq等于则为真-ne不等于则为真-gt大于则为真-ge大于等于则为真-lt小于则为真-le小于等于则为真
语法:if test $[num1] -eq $[num2]
字符串测试:
项目Value=等于则为真!=不相等则为真-z字符串 字符串的长度为零则为真-n字符串 字符串的长度不为零则为真
语法:if test $num1 = $num2
文件测试
参数说明-e 文件名如果文件存在则为真-r 文件名如果文件存在且可读则为真-w 文件名如果文件存在且可写则为真-x 文件名如果文件存在且可执行则为真-s 文件名如果文件存在且至少有一个字符则为真-d 文件名如果文件存在且为目录则为真-f 文件名如果文件存在且为普通文件则为真-c 文件名如果文件存在且为字符型特殊文件则为真-b 文件名如果文件存在且为块特殊文件则为真
语法:if test -e ./bash