小脚本
#!/bin/sh
cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 24 | head -n 4
printf 'do you like this? (y/n)? '
read answer
if [ "$answer" != "${answer#[Yy]}" ] ;then
echo Yes
else
echo No
goto?!? jumpto?!? urandom line
fi
它从 urandom 读取并询问是否正常,如果正常则脚本结束。
如果不是,我会阅读并再次询问 - 如何做到这一点?
我需要 goto 吗?或者 jumpto 或者其他的吗?
据我了解,您想要执行包含脚本的无限循环,并在提示的答案为时退出脚本
y
。创建无限循环的方法
bash
是使用while true
:退出脚本的方法是使用适当命名的
exit
。这将使你的脚本:
还有其他一些意见供您考虑。
确保
#!/bin/sh
脚本在 下运行sh
,而不是 在 下运行bash
。如果要使用bash
,请将行更改为#!/bin/bash
。read
能够为您提供提示。您不需要为此printf
。作为
if
条件,我会(在bash
,sh
不支持这一点):这更具可读性(我认为)。