Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 第一个命令完成后,如何运行第二个命令?_Bash_If Statement - Fatal编程技术网

Bash 第一个命令完成后,如何运行第二个命令?

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语句。但是我想用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 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