Linux初步学习(三)
shell
test
- Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。
数值
| 参数 |
说明 |
| -eq |
等于则为真 |
| -ne |
不等于则为真 |
| -gt |
大于则为真 |
| -ge |
大于等于则为真 |
| -lt |
小于则为真 |
| -le |
小于等于则为真 |
num1=100 num2=100 if test $[num1] -eq $[num2] then echo '两个数相等!' else echo '两个数不相等!' fi
|
字符串
| 参数 |
说明 |
| = |
等于则为真 |
| != |
不相等则为真 |
| -z 字符串 |
字符串的长度为零则为真 |
| -n 字符串 |
字符串的长度不为零则为真 |
实例
num1="ru1noob" num2="runoob" if test $num1 = $num2 then echo '两个字符串相等!' else echo '两个字符串不相等!' fi
|
文件
| 参数 |
说明 |
| -e 文件名 |
如果文件存在则为真 |
| -r 文件名 |
如果文件存在且可读则为真 |
| -w 文件名 |
如果文件存在且可写则为真 |
| -x 文件名 |
如果文件存在且可执行则为真 |
| -s 文件名 |
如果文件存在且至少有一个字符则为真 |
| -d 文件名 |
如果文件存在且为目录则为真 |
| -f 文件名 |
如果文件存在且为普通文件则为真 |
| -c 文件名 |
如果文件存在且为字符型特殊文件则为真 |
| -b 文件名 |
如果文件存在且为块特殊文件则为真 |
使用例
cd /bin if test -e ./bash then echo '文件已存在!' else echo '文件不存在!' fi
|
Shell 还提供了与( -a )、或( -o )、非( ! )三个逻辑操作符用于将测试条件连接起来,其优先级为: ! 最高, -a 次之, -o 最低。
cd /bin if test -e ./notFile -o -e ./bash then echo '至少有一个文件存在!' else echo '两个文件都不存在' fi
|
分支和循环
if-else
if condition1 then command1 elif condition2 then command2 else commandN fi
|
for循环
for var in item1 item2 ... itemN do command1 command2 ... commandN done
|
for str in This is a string do echo $str done
|
while 语句
while condition do command done
|
echo '按下 <CTRL-D> 退出' echo -n '输入你最喜欢的网站名: ' while read FILM do echo "是的!$FILM 是一个好网站" done
|
无限循环
until循环
until 循环执行一系列命令直至条件为 true 时停止。
until condition do command done
|
case和easc
类似于switch case语句
case 值 in 模式1) command1 command2 ... commandN ;; 模式2) command1 command2 ... commandN ;; esac
|
#!/bin/bash while : do echo -n "输入 1 到 5 之间的数字:" read aNum case $aNum in 1|2|3|4|5) echo "你输入的数字为 $aNum!" ;; *) echo "你输入的数字不是 1 到 5 之间的! 游戏结束" break ;; esac done
|
- 此处注意多个输入对应一个case的时候,使用
|分隔,蒋多个输入列为一种情况
break和continue
类似于其他语言,略