use*_*466 6 account shell conditional if-statement
我想知道在if编写shell脚本时是否可以在语句中包含两个以上的语句?
username1="BOSS1"
username2="BOSS2"
password1="1234"
password2="4321"
if(($username == $username1)) && (($password == password1)) || 
  (($username == $username2)) && (($password == password2)) ; then
这不起作用.但有没有办法让它发挥作用?
谢谢!
net*_*tux 30
如果使用/bin/sh你可以使用:
if [ <condition> ] && [ <condition> ]; then
    ...
fi
如果使用/bin/bash你可以使用:
if [[ <condition> && <condition> ]]; then
    ...
fi
che*_*ner 10
您正在尝试比较算术命令(((...)))中的字符串.请[[改用.
if [[ $username == "$username1" && $password == "$password1" ]] ||
   [[ $username == "$username2" && $password == "$password2" ]]; then
请注意,我已经将这个减少到两个单独的测试连接||,并&&在测试中移动.这是因为外壳运营商&&和||具有相同的优先级,并简单地从左边的评价权.结果,通常不a && b || c && d等于预期的( a && b ) || ( c && d ).
| 归档时间: | 
 | 
| 查看次数: | 98287 次 | 
| 最近记录: |