IF 条件语句
[ -d /root ] :判断目录是否存在
[ -f /etc/passwd ]:判断文件是否存在
[ $NAME == 'test' ]:判断变量
echo $? 值为0为正常,非0为不正常。
if then 语法
开始执行 condition1 对应的任务
代码1:
修改后:
if else 语法
条件成立执行then,否则执行else语句
if 条件1
代码:
if elif else 语法
通过elif可以定义多个条件匹配
if 条件1
条件1 语句
条件2 语句
条件3 语句
上述条件都不成立 语句
代码;
嵌套if
-eq 等于
-lt 小于
-gt 大于
具体可以通过 man test来查看
代码:
CASE 语句
以下是一个使用 case 语句的 Linux shell 脚本示例,用于根据用户输入的数字输出对应的星期几名称:
用户输入数字后,脚本会根据 case 语句中的不同分支输出对应的星期几名称。如果用户输入的数字不在 1-7 范围内,则会输出错误提示信息。
代码:
FOR 循环语句
代码:
代码:
以下是一个使用 for 循环的 Linux shell 脚本示例,用于批量重命名文件夹中的所有文件:
[root@user01 ~]# mkdir abc
[root@user01 ~]# touch abc
[root@user01 ~]# touch abc/{a,b,c}{1,2,3}.txt
[root@user01 ~]# ls abc/
a1.txt a2.txt a3.txt b1.txt b2.txt b3.txt c1.txt c2.txt c3.txt
[root@user01 ~]#
脚本会先要求用户输入要重命名的文件夹路径和要添加的前缀,然后使用 for 循环遍历该文件夹中的所有文件。如果文件是普通文件,就使用 mv 命令将其重命名为添加了前缀的新文件名,并输出重命名信息。最后输出重命名完成的提示。
代码:
echo "Please input directory name:" /test----选择路径
echo "Please input prefix:" 0416-----加上前缀
mv "$path/$file" "$path/$prefix$file"
以下是一个使用 for 循环的 Linux shell 脚本示例,用于输出九九乘法表:
脚本使用两个嵌套的 for 循环,外层循环控制乘法表的行数,内层循环控制列数。其中,为了避免输出重复的乘积,内层循环只输出列数小于等于行数的乘积。最后使用 echo 命令输出每行的内容。运行脚本后,即可在终端中输出九九乘法表。
代码:
WHILE 循环
以下是一个使用 while 循环的 Linux shell 脚本示例,用于实现猜数字小游戏:
脚本首先随机生成一个 1-100 之间的整数,并要求用户输入猜测的数字。然后使用 while 循环进行猜测,每次判断用户输入的数字与随机数的大小关系,如果猜小了就输出提示信息让用户再次尝试,猜大了同理,直到猜对为止。最后输出猜测的次数。运行脚本后,即可在终端中玩猜数字小游戏。
在 Linux shell 脚本中,$RANDOM 是一个系统变量,用于生成一个 0-32767 之间的随机整数。为了得到 1-100 之间的随机整数,可以使用 $RANDOM%100+1 的表达式,该表达式会先将 $RANDOM 生成的随机整数对 100 取模,得到 0-99 之间的随机整数,然后再加上 1,得到 1-100 之间的随机整数。
代码: