Bash 尝试在if中添加两个条件
我正在尝试执行这个bash脚本,我正在尝试加入这个域 在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
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”的输入。