Bash 第一个命令完成后,如何运行第二个命令?
我得到了一个脚本,可以在配置值中查找一个值,并用用户输入替换它。这只适用于一个if语句。但是我想用3个问题提示用户(询问IP1=>replace value,询问IP2=>replace value等) 简单地复制/粘贴同一命令并使用fi完成操作是不起作用的 工作 不起作用Bash 第一个命令完成后,如何运行第二个命令?,bash,if-statement,Bash,If Statement,我得到了一个脚本,可以在配置值中查找一个值,并用用户输入替换它。这只适用于一个if语句。但是我想用3个问题提示用户(询问IP1=>replace value,询问IP2=>replace value等) 简单地复制/粘贴同一命令并使用fi完成操作是不起作用的 工作 不起作用 if read -p "Enter IP1" IP1; then sed -i~ -e "s/myip1/${IP1}/g" test.txt else echo Error if read -p "Enter IP
if read -p "Enter IP1" IP1; then
sed -i~ -e "s/myip1/${IP1}/g" test.txt
else
echo Error
if read -p "Enter IP2" IP2; then
sed -i~ -e "s/myip2/${IP2}/g" test.txt
else
echo Error
fi
对此进行测试:
if read -p "Please Enter an IP" "$ip":'[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*$' >/dev/null; then
echo "success"
else
echo "fail"
shell不区分空格(与Python不同)
if
语句由fi
命令终止,而不是由代码的布局终止。如果有两个If
语句,则需要两个fi
s:
if read -p "Enter IP1" IP1; then
sed -i~ -e "s/myip1/${IP1}/g" test.txt
else
echo Error
fi # <<<<<< Added
if read -p "Enter IP2" IP2; then
sed -i~ -e "s/myip2/${IP2}/g" test.txt
else
echo Error
fi
如果读取-p“输入IP1”IP1;然后
sed-i~-e“s/myip1/${IP1}/g”test.txt
其他的
回波误差
fi#您所需要的只是第一个if语句后的fi…谢谢,添加fi解决了问题。一个单独但相关的问题;我知道goto在bash中不起作用,但等价物是什么?在允许用户输入IP之前,我想询问他们是否需要IP。如果不是,我希望它跳到脚本的下一部分/bin/bash WAN2_提示符读取-p“WAN2存在?”“-n 1-r如果[!$REPLY=~^[Yy]$],则转到WAN2,否则转到WAN3_提示符fi@sjaak尽可能将字符串磨光以添加已解决的问题
if read -p "Enter IP1" IP1; then
sed -i~ -e "s/myip1/${IP1}/g" test.txt
else
echo Error
fi # <<<<<< Added
if read -p "Enter IP2" IP2; then
sed -i~ -e "s/myip2/${IP2}/g" test.txt
else
echo Error
fi