常用命令
echo
显示普通字符串
1
echo "test"
显示转义字符
1
echo "\"test\""
显示变量
1
echo "$key"
显示换行
1
echo -e "OK! \n" # -e 开启转义
显示不换行
1
echo -e "OK! \c" # -e 开启转义 \c 不换行
显示结果定向至文件
1
echo "test" > myfile
原样输出字符串,不进行转义或取变量(用单引号)
1
echo '$name\"'
显示命令执行结果
1
echo `date`
printf
命令的语法1
printf format-string [arguments...]
test
test命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试
- 数值测试
 
| 参数 | 说明 | 
|---|---|
-eq | 
等于则为真 | 
-ne | 
不等于则为真 | 
-gt | 
大于则为真 | 
-ge | 
大于等于则为真 | 
-lt | 
小于则为真 | 
-le | 
小于等于则为真 | 
e.g.1
2
3
4
5
6
7
8num1=100
num2=100
if test $[num1] -eq $[num2]
then
    echo '两个数相等!'
else
    echo '两个数不相等!'
fi
- 字符串测试
 
| 参数 | 说明 | 
|---|---|
= | 
等于则为真 | 
!= | 
不相等则为真 | 
-z 字符串 | 
字符串的长度为零则为真 | 
-n 字符串 | 
字符串的长度不为零则为真 | 
e.g.1
2
3
4
5
6
7
8num1="ru1noob"
num2="runoob"
if test $num1 = $num2
then
    echo '两个字符串相等!'
else
    echo '两个字符串不相等!'
fi
- 文件测试
 
| 参数 | 说明 | 
|---|---|
-e 文件名 | 
如果文件存在则为真 | 
-r 文件名 | 
如果文件存在且可读则为真 | 
-w 文件名 | 
如果文件存在且可写则为真 | 
-x 文件名 | 
如果文件存在且可执行则为真 | 
-s 文件名 | 
如果文件存在且至少有一个字符则为真 | 
-d 文件名 | 
如果文件存在且为目录则为真 | 
-f 文件名 | 
如果文件存在且为普通文件则为真 | 
-c 文件名 | 
如果文件存在且为字符型特殊文件则为真 | 
-b 文件名 | 
如果文件存在且为块特殊文件则为真 | 
e.g.1
2
3
4
5
6
7cd /bin
if test -e ./bash
then
    echo '文件已存在!'
else
    echo '文件不存在!'
fi
1  | cd /bin  | 
函数
函数的定义格式1
2
3
4
5[ function ] funname [()]
{
    action;
    [return int;]
}
注:function是可选参数,函数的返回值:如果没有return,那么将以最后一条命令的运行结果作为返回值
如果前括号写在函数名后,一定要留有空格,如果函数名后带有(),此时可以不用空格
e.g.1
2
3
4
5
6
7funcTest() {
    echo "func test"
    echo $1
}
echo "func start"
demoFun 2
echo "func stop"
函数返回值在调用该函数后通过$?来获得
重定向
| 命令 | 说明 | 
|---|---|
command > file | 
将输出重定向到 file | 
command < file | 
将输入重定向到 file | 
command >> file | 
将输出以追加的方式重定向到 file | 
n > file | 
将文件描述符为 n 的文件重定向到 file | 
n >> file | 
将文件描述符为 n 的文件以追加的方式重定向到 file | 
n >& m | 
将输出文件 m 和 n 合并 | 
n <& m | 
将输入文件 m 和 n 合并 | 
<< tag | 
将开始标记 tag 和结束标记 tag 之间的内容作为输入 | 
将脚本内所有输出重定向到文件1
2exec 1>file1 #标准输出
exec 2>file2 #标准错误
文件包含
语法格式如下1
. filename   # 注意点号(.)和文件名中间有一空格
或1
source filename