有一个示例脚本并希望一次只执行一个,那么如何向 shell 脚本提供命令行输入以执行响应?另外,我不能修改脚本,这里从下面的代码只想执行“ls”命令。
have tried below command to execute, but it took 'yes' for both
yes yes no | bash test.sh
e.g:
while true; do
read -p "Would you like to run ls command? (y/n)" response
case $response in
[Yy]* ) ls; break;;
[Nn]* ) break;;
* ) echo; echo "Please answer yes or no.";;
esac
done
while true; do
read -p "Would you like to run PWD command? (y/n)" response
case $response in
[Yy]* ) pwd; break;;
[Nn]* ) break;;
* ) echo; echo "Please answer yes or no.";;
esac
done
任何人都可以提出解决方案吗?
从描述yes
:
重复输出包含所有指定 STRING(s) 或 'y' 的行
所以,yes yes no
输出:
yes no
yes no
yes no
...
但是你想要
yes
no
您可以尝试在字符串中添加换行符:
yes 'yes
no' | bash test.sh
或者,因为您只需要一次而不是重复,请手动将其提供给您的脚本:
printf '%s\n%s\n' yes no | bash test.sh
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句