全新九游

2021-08-06由程序员日记发表于系统教程 浏览28次

目录

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