欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Shell 脚本语言

程序员文章站 2022-04-05 14:51:17
...

1./dev/null

相当于Linux垃圾箱。

2.重定向

类型 符号 作用
实例 ls &> test.txt
标准输出重定向 命令>文件 以覆盖的方式,把命令正确输出输出到指定的文件或设备当中。
>> 以追加的方式进行。
标准错误输出重定向 命令2>文件 以覆盖的方式,把命令错误输出输出到指定的文件或设备当中。
命令2>>文件 以追加的方式进行。
正确错误输出同时保存 命令>文件 2>&1
命令>>文件 2>&1
命令 &> 文件
命令 &>> 文件
命令>>文件1 2>>文件2

3.支持Shell脚本的查询

cat /etc/shells         //查询支持的shell脚本

4.文件测试操作符

操作符 作用
如果下面的条件成立将会返回真
-e 文件存在。
-a 文件存在,与-e相同。
-f 表示这个文件是一般文件(并不是目录或设备文件)。
-s 表示文件大小不为零
-d 表示这是一个目录
-b 表示这是一个块设备(软盘,光驱,等等)。
-c 表示这是一个字符设备(键盘,modem,声卡,等等)。
-p 表示这是一个管道。
-h 表示这是一个符号链接。
-L 表示这是一个符号链接。
-S 表示这是一个socket。
-t 表示文件(描述符)被关联到一个终端设备上,这个测试选项一般
被用来检测脚本中的stdio([ -t 0])或者stdout([ -t 1])是否来自于一个终端。
-r 表示文件是否具有可读权限
(指正在运行这个测试命令的用户是否具有读取权限)。
-w 表示文件是否具有可写权限
(指正在运行这个测试命令的用户是否具有写权限)。
-x 表示文件是否具有可执行权限
(指正在运行这个测试命令的用户是否具有执行权限)。
-o 判断你是否是文件的拥有者。
-N 判断从文件上一次被读取到现在为止,文件是否被修改过。
f1 -nt f2 表示文件f1 比 文件f2 新。
f1 -ot f2 表示文件f1 比 文件f2 旧。
f1 -et f2 表示文件f1 和 文件f2 是相同文件的硬链接。
! 表示“非”–反转测试的结果。

5.比较操作符

操作符 作用
if [ “$a” -eq “$b”]
-eq 等于
-ne 不等于
-gt 大于
-ge 大于等于
-lt 小于
-le 小于等于
在双括号中使用 ((“$a” < “$b”))
<,<=,>,>=
字符串比较 if [ “$a” -eq “$b”]
= 等于, 等价于 ==。
!= 不等于。
<或> 小于,大于,按照ASCII字符进行排序。
-z 字符串为“null”,意思是字符串长度为零。
-n 表示字符串不为“null”。
-a 表示逻辑与。
-o 表示逻辑或。

example

1.比较输入命令与 5 的大小关系。

#!/bin/sh
# $./test.sh 5 
#middle
if [ $1 -eq 5 ];
then
        echo "middle"
elif    [ $1 -lt 5 -a $1 -ge 0 ]
then
        echo "small"
elif    [ $1 -lt 0 ]
then
        echo "error"

else
        echo "big"
fi

2.多个条件判断

#!/bin/sh
#$./test.sh man
#Gentleman
case $1 in
        boy|m[ae]n|male)echo "Gentleman";;
        girl|wom[ae]n|female)echo "Lady";;
        *)echo "Error";;
esac

3.for循环

#!/bin/sh
#$./test.sh
for n in $(seq 1 20);do
        if [ $n -le 8 ]
        then
                echo $n
        else
                echo a+$n
        fi
done  

4.while循环

# 未实现
#!/bin/sh

while [ $n -le 10 ];do
        echo $n
        let n++
done
相关标签: Shell 脚本语言