Shell教程(2)--结构化语句if

先来回顾一下上文的问题:
如果电脑上已经有了/usr/directory文件夹。就不需要再去创建文件夹了!
这是一个全新的需求,我们的思路并不是一条道走到黑,现在我们需要走向一条正确的道路。
if命令就闪亮出场了。

#! /bin/bash
cd /usr/
if [ -e directory ]; then
  echo "directory is  already exist" 
else
  echo "creat directory"
  mkdir directory
  cd directory/
  mkdir code
  mkdir util
  mkdir test
fi

(-e directory 判断当前目录下是否存在directory文件)
利用
if commands then
command
else
command
fi
就可以完成判断工作了。
你看看现在咱们可以有选择的去执行一些步骤了。只是现在场景有摇身一变了。可能会有一些特殊的需求,这个新场景就比如说:

  • 如果电脑上已经有了/usr/directory文件夹。就不需要再去创建文件夹了!
  • 可能有些人的电脑上只需要在/usr/directory目录先创建code文件夹
  • 有些人的电脑上只需要在/usr/directory目录先创建unit文件夹
  • 有些人需要所有的文件夹
    这可怎么做呢?不仅需要判断,还需要再根据不同的条件去创建文件夹,比如
条件步骤
等于0创建code文件夹
等于1创建unit文件夹
其他输入创建全部的文件夹

没事,路要一步一步走,饭要一口一口吃。
咱们先搞定怎么能传入不同的条件:
shell 脚本允许我们启动脚本时传入参数,例如 参数1 ,在shell脚本内部里就是$1。参数2,在脚本内部就是$2。 两个参数之间用空格分开就好了。
现在我们已经解决了从外部引入条件的步骤,紧接着就是用另一种形式的判断去解决掉问题就可以了。

#! /bin/bash
cd /usr/

if [ -e directory ]; then
  echo "directory is  already exist" 
else
  echo "creat directory"
  mkdir directory
  cd directory/
  if [ $1 -eq 0 ]; then 
    mkdir code
  elif [ $1 -eq 1 ];then 
    mkdir util
  else
   mkdir code
   mkdir util
   mkdir test
 fi
fi

显而易见咱们通过在if里边有套接了一层if就完美解决了这个问题。
这个新加入的if格式是这样的
if command1
then
commands
elif command2
then
more commands
else
another commands
fi
讲到这里可能你觉得if命令就已经结束了,其实不然,if好像是一把枪,那if中的判断语句就是子弹,如果只给了枪没有子弹的话,那这支枪又有什么作用呢?

下一节:条件判断。给你提供充足的子弹。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值