Bash脚本,if语句

时间:2014-04-11 21:22:31

标签: linux bash

我正在练习脚本,我不知道我的脚本有什么问题。这就是我现在所拥有的。

#!/bin/bash

read -p "Continue? y/n" y

y=0

if (y eq- 0 )then;
    y=1
fi
if (y eq- 0 )then;
    read-p "Thank you for running this script"
    exit
else
    read-p "You will now exit"
    exit
fi

任何建议或想法都会有所帮助。

2 个答案:

答案 0 :(得分:7)

一些注意事项:

  • 要在bash中使用变量,请在

  • 之前添加$
  • ;如果放在同一行<{1}},则在then之前。

    #!/bin/bash -x
    
    read -p "Continue? y/n" y
    #y=0
    # Why set y to 0 when you read it ?
    # Why check y equal to 0 if you just set it ?
    #if [[ $y -eq 0 ]] ; then
    #  y=1
    #fi  
    
    if [[ "$y" = "y" ]]; then
       read -p "Thank you for running this script"
       exit
    else
       read -p "You will now exit"
       exit
    fi
    

您还可以使用正则表达式来检查&#39; y&#39;小写和小写:

if [[ $y =~ [yY] ]]; then
   read -p "Thank you for running this script"
fi

答案 1 :(得分:0)

if ($y eq- 0 ) then;

read -p "You will now exit"

对空格非常小心,它们不仅仅是为了便于阅读,有时它们也是有原因的!

小心; (分号)。 它只是为了避免将以下文本放在新行上。对我来说,它在命令行操作中很有用,但我没有看到在脚本中使用它的理由。去下一行吧。你看到有人用一行创建一个带有分号的脚本吗?不,它不可读。为什么必须将其与IF一起使用?

相关问题