linux的echo命令, 在shell编程中极为经常使用, 在终端下打印变量value的时候也是经常用到的, 所以有必要了解下echo的用法linux
echo命令的功能是在显示器上显示一段文字,通常起到一个提示的做用。
该命令的通常格式为: echo [ -n ] 字符串
其中选项n表示输出文字后不换行;字符串能加引号,也能不加引号。用echo命令输出加引号的字符串时,将字符串原样输出;用echo命令输出不加引号的字符串时,将字符串中的各个单词做为字符串输出,各字符串之间用一个空格分割。shell
功能说明:显示文字。
语 法:echo [-ne][字符串]或 echo [--help][--version]
补充说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号。编程
参 数:bash
-n 不要在最后自动换行
-e 若字符串中出现如下字符,则特别加以处理,而不会将它当成通常编辑器
文字输出:
\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\v 与\f相同;
\\ 插入\字符;
\nnn 插入nnn(八进制)所表明的ASCII字符;
–help 显示帮助
–version 显示版本信息测试
Shell 脚本的编写spa
l Shell 脚本是纯文本文件,可使用任何文本编辑器编写进程
l Shell 脚本一般是以 .sh 做为后缀名ip
Shell 脚本的执行ci
chmod +x script_name
./script_name
bash script_name
Shell 脚本的格式
u 第一行:指定用哪一个程序来编译和执行脚本。
#!/bin/bash
#!/bin/sh
#!/bin/csh
可执行语句和 shell 控制结构
一个 shell 脚本一般由一组 Linux 命令、shell 命令、控制结构和注释语句构成。
注释:以 “ # ” 开头,可独占一行,或跟在语句的后面。
注意:若是返回值是0,就是执行成功;若是是返回值是0之外的值,就是失败。
返回值为0,说明上一步执行正确
当一个进程执行完毕时,该进程会调用一个名为 _exit 的例程来通知内核它已经作好“消亡”的准备了。该进程会提供一个退出码(一个整数)代表它准备退出的缘由。按照惯例,0用来表示正常的或者说“成功”的终止。
1、 内置测试命令 test
l 一般用 test 命令来测试表达式的值
x=5; y=10
test $x -gt $y
echo $?
l test 命令能够用 方括号 来代替
x=5; y=10
[ $x -gt $y ] 方括号先后要留空格!
echo $?
二.x 版本以上的 Bash 中能够用双方括号来测试表达式的值,此时可使用通配符进行模式匹配。
name=Tom
[ $name = [Tt]?? ]
echo $?
[[ $name = [Tt]?? ]]
echo $?
[ -z str ] |
若是字符串 str 长度为 0,返回真 |
[ -n str ] |
若是字符串 str 长度不为 0,返回真 |
[ str1 = str2 ] |
两字符串相等 |
[ str1 != str2 ] |
两字符串不等 |
name=Tom; [ -z $name ]; echo $?
name2=Andy; [ $name = $name2 ] ; echo $?
q 整数测试,即比较大小
[ int1 -eq int2 ] |
int1 等于 int2 |
[ int1 -ne int2 ] |
int1 不等于 int2 |
[ int1 -gt int2 ] |
int1 大于 int2 |
[ int1 -ge int2 ] |
int1 大于或等于 int2 |
[ int1 -lt int2 ] |
int1 小于 int2 |
[ int1 -le int2 ] |
int1 小于或等于 int2 |
x=1; [ $x -eq 1 ]; echo $?
q 整数测试也可使用 let 命令或双圆括号
l 相应的操做符为: 只能用于整数测试!
== 、!= 、> 、>= 、< 、<=
l 例:x=1; let "$x == 1"; echo $?
x=1; (($x+1>= 2 )); echo $?
q 两种测试方法的区别
l 使用的操做符不一样
l let 和 双圆括号中可使用算术表达式,而中括号不能
l let 和 双圆括号中,操做符两边能够不留空格
[ expr1 -a expr2 ] |
逻辑与,都为真时,结果为真 |
[ expr1 -o expr2 ] |
逻辑或,有一个为真时,结果为真 |
[ ! expr ] |
逻辑非 |
x=1; name=Tom;
[ $x -eq 1 –a –n $name ]; echo $?
注:不能随便添加括号,下面是错误的
[ ( $x -eq 1 ) –a ( –n $name ) ]; echo $?