Bash 尝试在if中添加两个条件

Bash 尝试在if中添加两个条件,bash,Bash,我正在尝试执行这个bash脚本,我正在尝试加入这个域 在domainjoin clijoin$Domain之后,它会提示输入密码,如果我的密码错误,我希望脚本退出并显示消息“Not Successful”,另一方面,如果它是正确的密码,我需要它继续脚本的其余部分 #!/bin/bash echo -n "Domain: " read Domain domainjoin-cli join $Domain if [[ "$password" = 'SUCCESS' ]] then

我正在尝试执行这个bash脚本,我正在尝试加入这个域

domainjoin cli
join
$Domain
之后,它会提示输入密码,如果我的密码错误,我希望脚本退出并显示消息“Not Successful”,另一方面,如果它是正确的密码,我需要它继续脚本的其余部分

#!/bin/bash  
echo -n "Domain: "  
read Domain  
domainjoin-cli join $Domain  
if [[ "$password" = 'SUCCESS' ]]  
then  
    echo "SUCCESS"  
    ls -l  
fi  
echo  
if [[ "$password" = 'Error' ]]  
    then  
        echo "Not SUCCESSFULL"  
        exit  
fi 
如果我执行脚本,我会收到以下错误消息:

3.sh: 5: 3.sh: [[: not found  
3.sh: 10: 3.sh: [[: not found 
这是密码错误时的输出:

"Error: LW_ERROR_PASSWORD_MISMATCH [code 0x00009c56] The password is incorrect for the given account"
这是密码正确时的输出:

"Warning: System restart required Your system has been configured to authenticate to Active Directory for the first time. It is recommended that you restart your system to ensure that all applications recognize the new settings.

SUCCESS"
  • 。在脚本运行时,引用变量可确保它扩展为单个“单词”或参数
  • -eq
    等用于比较数字,因此它会将“成功”视为数字零,这不是您想要的
  • 不要害怕巴什主义<代码>[比
    [
    更可取,因为它更难打破
结果是:

[[ "$password" = 'SUCCESS' ]]
  • 。引用变量可确保在脚本运行时将其扩展为单个“字”或参数
  • -eq
    等用于比较数字,因此它会将“成功”视为数字零,这不是您想要的
  • 不要害怕巴西主义。
    [
    [
    更可取,因为打破它更难
结果是:

[[ "$password" = 'SUCCESS' ]]

(缩进后)在
echo“SUCCESS”
之后,您似乎缺少一个
fi
。在进行必要的更改后,我收到此错误消息。3.sh:5:[:-eq:unexpected operator 3.sh:10:[:-eq:unexpected operator编辑后,我遇到此“error 3.sh:5:3.sh:[:未找到”“3.sh:10:3.sh:[:未找到”我看不出您在哪里设置了
$password
;是否设置了密码?另外,您是否使用
sh
命令运行脚本?如果是,请不要;这会覆盖shebang,并使用
sh
而不是
bash
运行它。只需使用
/scriptname
(如果它不在当前目录中,则使用它的路径).Well$password是“domainjoin cli join$Domain”的输入。(缩进后)在
echo“SUCCESS”
之后,您似乎缺少了一个
fi
。在进行必要的更改后,我收到了此错误消息。3.sh:5:[:-eq:unexpected operator 3.sh:10:[:-eq:unexpected operator编辑后,我遇到了此问题“错误3.sh:5:3.sh:[[:未找到”“3.sh:10:3.sh:[[:未找到”“我看不出您在哪里设置了
$password
;是否设置了密码?另外,您是否使用
sh
命令运行脚本?如果是,请不要这样做;这将覆盖shebang,并使用
sh
而不是
bash
运行它。只需使用
/scriptname
(如果它不在当前目录中,则使用它的路径).Well$password是“domainjoin cli join$Domain”的输入。