Bash 有没有办法阻止';是';在某些提示后执行命令

Bash 有没有办法阻止';是';在某些提示后执行命令,bash,Bash,嗨,我有一个脚本,它需要用户输入4个yes,而第5个提示符需要一个数字 有没有办法在4个“是”之后停止“是”命令,这样第5次提示用户可以自由输入数字。您只需传递所需的输入即可: printf '%s\n' 'yes' 'yes' 'yes' 'yes' '1234' | ./my_script.sh PS:如果这是你自己的脚本,我会非常推荐它非交互式/my_script.sh--enable foo--run bar--do baz--include ban--repeat 1234(或--f

嗨,我有一个脚本,它需要用户输入4个yes,而第5个提示符需要一个数字


有没有办法在4个“是”之后停止“是”命令,这样第5次提示用户可以自由输入数字。

您只需传递所需的输入即可:

printf '%s\n' 'yes' 'yes' 'yes' 'yes' '1234' | ./my_script.sh

PS:如果这是你自己的脚本,我会非常推荐它非交互式
/my_script.sh--enable foo--run bar--do baz--include ban--repeat 1234
(或
--foo
等)更长,但表达能力更强,因此更易于维护。

您只需传递所需的输入即可:

printf '%s\n' 'yes' 'yes' 'yes' 'yes' '1234' | ./my_script.sh

PS:如果这是你自己的脚本,我会非常推荐它非交互式
/my_script.sh--enable foo--run bar--do baz--include ban--repeat 1234
(或
--foo
等)更长,但更具表现力,因此更易于维护。

不使用yes命令,只需重复yes四次即可。向我们显示您实际运行的命令。
yes | head-n4
不使用yes命令,只回显yes四次。告诉我们您实际运行的命令。
yes | head-n4
回答得好,我没有意识到
printf
的重复性,我会使用
printf'yes\nyes\nyes\nyes\1234\n'
。顺便说一句,由于这些项目不包含空格,您可以不引用它们(格式字符串除外)。@paxdiablo我很清楚引用规则,通常省略它们是个坏主意。我只是说,在这种情况下,这是完全不必要的,决不是一个坏主意。听起来你对我的建议感到不快,这不是我的意图,所以我就继续说。“帕克迪布洛没有冒犯,但我认为这是一个坏主意。有两个原因:第一,因为它对初学者来说是完全不明显的,为什么添加一个字符串的一个符号应该引起问题,第二个原因是它澄清了作者试图做的事情。回答得好,我没有意识到
printf
的重复性,我会使用
printf'yes\nyes\nyes\nyes\1234\n'
。顺便说一句,由于这些项目不包含空格,您可以不引用它们(格式字符串除外)。@paxdiablo我很清楚引用规则,通常省略它们是个坏主意。我只是说,在这种情况下,这是完全不必要的,决不是一个坏主意。听起来你对我的建议感到不快,这不是我的意图,所以我就继续说。“帕克迪布洛没有冒犯,但我认为这是一个坏主意。有两个原因:第一,因为它对初学者来说是完全不明显的,为什么添加一个字符串的一个符号应该引起问题,第二,因为它澄清了作者试图做什么。