Shell基本命令(下)

一、test 命令
Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。
数值测试:-eq, -ne, -lt, -gt, -le, -ge
字符串测试: =, !=,
文件测试:
-e 文件名: 如果文件存在则为真
-r 文件名: 如果文件存在且可读则为真
-w 文件名: 如果文件存在且可写则为真
-x 文件名: 如果文件存在且可执行则为真
-s 文件名: 如果文件存在且至少有一个字符则为真
-d 文件名: 如果文件存在且为目录则为真
-f 文件名: 如果文件存在且为普通文件则为真
-c 文件名: 如果文件存在且为字符型特殊文件则为真
-b 文件名: 如果文件存在且为块特殊文件则为真
like:
cd /bin
if test -e ./bash
then
echo '文件已存在!'
else
echo '文件不存在!'
fi

like:
num1=100
num2=100
if test $[num1] -eq $[num2]
then
echo '两个数相等!'
else
echo '两个数不相等!'
fi

二、流程控制
和Java、PHP等语言不一样,sh的流程控制不可为空
1、if:
if condition
then
command1
command2
...
commandN
fi

2、if else:
if condition
then
command1
command2
...
commandN
else
command
fi

3、for 循环:
for var in item1 item2 ... itemN; do command1; command2… done;

4、while 语句:
while condition
do
command
done

5、case:case语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。
case 值 in
模式1)
command1
command2
...
commandN
;;
模式2)
command1
command2
...
commandN
;;
esac

6、break:允许跳出所有循环
7、continue:continue命令与break命令类似,只有一点差别,它不会跳出所有循环,仅仅跳出当前循环。

三、函数
1、语法:可以带function fun() 定义,也可以直接fun() 定义,不带任何参数;参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。 return后跟数值n(0-255),函数返回值在调用该函数后通过 $? 来获得。
2、函数参数:调用函数时可以向其传递参数。在函数体内部,通过 $n 的形式来获取参数的值。例如,$1表示第一个参数。
add(){
echo "first parameter: $1"
echo "second parameter: $2"
return $(($1+$2))
}
add 1 2
echo $?

四、文本包含
Shell 也可以包含外部脚本。这样可以很方便的封装一些公用的代码作为一个独立的文件。语法:
. filename # 注意点号(.)和文件名中间有一空格
或 source filename
eg:
test1.sh 代码如下:
url="http://www.runoob.com"
test2.sh 代码如下:
. ./test1.sh
echo "菜鸟教程官网地址:$url"

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,465评论 0 5
  • .bat脚本基本命令语法 目录 批处理的常见命令(未列举的命令还比较多,请查阅帮助信息) 1、REM 和 :: 2...
    庆庆庆庆庆阅读 8,214评论 1 19
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,958评论 19 139
  • 今天是父亲节,此文献给我可亲可爱的父亲。 从工作到现在换个3个单位,3个不同的地区。第一次因为父亲的同学故...
    小丽昵称阅读 233评论 0 0
  • 三七一密码,农历二零一六年十二月十二日起修心印经五十三周。
    郭三德阅读 657评论 0 0