shell echo 命令
Shell的echo指令与PHP的echo指令类似,都是用于字符串的输出。
案例演示
#!/bin/bash
echo "hello world !"
案例演示的是输出字符串
显示转义字符串
#!/bin/bash
echo "\"hello world ! \""
显示变量
read命令从标准输入中读取一行,并把输入行的每个字段的值指定给shell变量
#!/bin/bash
read name
echo "$name It is a demo"
结果为:
[root@bigdata math]# bash demo3.sh
chennali
chennali It is a demo
显示换行
# -e 是开启转义的意思
#!/bin/bash
echo -e "My name is ZhangSan \n"
echo "Hello ZhangSan"
显示不换行
# \c表示不换行
#!/bin/bash
echo -e "My name is ZhangSan \c"
echo "Hello ZhangSan"
显示结果定向至文件
echo "My name is Zhangsan" > demo6.sh
注释
- 一个
>
表示覆盖重写 - 两个
>>
表示追加
原样输出字符串,不进行转义或去变量(用单引号)
echo '$name\"'
显示命令执行结果
echo `date`
Shell printf 命令
printf 命令模仿C程序库(library)里的printf()程序。
printf 使用引用文本或空格分隔的参数,外面可以在 printf 中使用格式化字符串,还可以制定字符串的宽度、左右对齐方式等。默认 printf 不会像 echo 自动添加换行符,我们可以手动添加 \n。
基本语法
printf format-string [arguments...]
参数说明
- format-string:为格式控制字符串
- arguments:为参数列表
案例演示
echo "Hello, Shell"
printf "Hello, Shell\n"
printf "%-10s %-8s %-4s\n" 姓名 性别 体重kg
printf "%-10s %-8s %-4.2f\n" 郭靖 男 66.1234
printf "%-10s %-8s %-4.2f\n" 杨过 男 48.6543
printf "%-10s %-8s %-4.2f\n" 郭芙 女 47.9876
注释
- %s %c %d %f都是格式替代符
- %-10s 指一个宽度为10个字符(-表示左对齐,没有则表示右对齐),任何字符都会被显示在10个字符宽的字符内,如果不足则自动以空格填充,超过也会将内容全部显示出来。
- %-4.2f 指格式化为小数,其中.2指保留2位小数。
printf的转义序列
序列 | 说明 |
---|---|
\a | 警告字符,通常为ASCII的BEL字符 |
\b | 后退 |
\c | 抑制(不显示)输出结果中任何结尾的换行字符(只在%b格式指示符控制下的参数字符串中有效),而且,任何留在参数里的字符、任何接下来的参数以及任何留在格式字符串中的字符,都被忽略 |
\f | 换页(formfeed) |
\n | 换行 |
\r | 回车(Carriage return) |
\t | 水平制表符 |
\v | 垂直制表符 |
\ | 一个字面上的反斜杠字符 |
\ddd | 表示1到3位数八进制值的字符。仅在格式字符串中有效 |
\0ddd | 表示1到3位的八进制值字符 |
Shell test命令
参数 | 说明 |
---|---|
-eq | 等于则为真 |
-ne | 不等于则为真 |
-gt | 大于则为真 |
-ge | 大于等于则为真 |
-lt | 小于则为真 |
-le | 小于等于则为真 |
字符串测试
参数 | 说明 |
---|---|
= | 等于则为真 |
!= | 不相等则为真 |
-z | 字符串 字符串的长度为零则为真 |
-n | 字符串 字符串的长度不为零则为真 |
文件测试
参数 | 说明 |
---|---|
-e | 文件名 如果文件存在则为真 |
-r | 文件名 如果文件存在且可读则为真 |
-w | 文件名 如果文件存在且可写则为真 |
-x | 文件名 如果文件存在且可执行则为真 |
-s | 文件名 如果文件存在且至少有一个字符则为真 |
-d | 文件名 如果文件存在且为目录则为真 |
-f | 文件名 如果文件存在且为普通文件则为真 |
-c | 文件名 如果文件存在且为字符型特殊文件则为真 |
-b | 文件名 如果文件存在且为块特殊文件则为真 |