在C Shell脚本中键入root密码,直到密码正确为止

在C Shell脚本中键入root密码,直到密码正确为止,shell,while-loop,csh,su,Shell,While Loop,Csh,Su,我正在为我的公司编写一个小工具,帮助用户在Centos机器上安装给定软件的特定版本。为此,我创建了一个csh脚本。最后,要安装上述软件,用户必须是root用户,因此在我的脚本中,我要求用户输入他/她的root密码 我的问题是,如果由于某种原因,用户在键入其根密码时出错,我的脚本将退出 因此,我正在寻找一种方法,允许用户多次尝试,比如说,3次 到目前为止,在我的脚本中,我只做了一个: su -c "chmod +x '${installPackageName}${dir}/installerAsR

我正在为我的公司编写一个小工具,帮助用户在Centos机器上安装给定软件的特定版本。为此,我创建了一个csh脚本。最后,要安装上述软件,用户必须是root用户,因此在我的脚本中,我要求用户输入他/她的root密码

我的问题是,如果由于某种原因,用户在键入其根密码时出错,我的脚本将退出

因此,我正在寻找一种方法,允许用户多次尝试,比如说,3次

到目前为止,在我的脚本中,我只做了一个:

su -c "chmod +x '${installPackageName}${dir}/installerAsRoot.sh'; cd ${installPackageName}${dir}; ./installerAsRoot.sh"
我尝试了一些
,而
/
做了
循环,但我对
su
的了解非常不明确。我还想到了一种在密码错误(125或-3)时捕获
su
返回值的方法,但我不确定如何在脚本中组合
eval
test
命令

非常感谢您的帮助

问候,


Hubert

sudo
会一直提示,直到正确为止。
$?
保存您上次执行的命令的退出代码。@MartijnCourteaux感谢您的快速回答。在我的例子中,
sudo
技巧似乎不起作用,因为有多个命令要运行,还有一些变量要解释。我将编辑我的原始帖子。请不要使用CSH编写新代码!帮自己一个忙,在Linux上改用Bash。阅读
Read
语句的一半
manbash
。然后执行
sudo csh-c“这里的一切”