Bash脚本帮助回显和命令

时间:2011-05-13 16:02:22

标签: bash shell terminal gnome

我要做的是让这个脚本读取用户输入,并使用用户输入执行命令。我得到了回音工作,但我无法让其他人继续工作。

gnome-terminal -t 'Change User Password' \
    -x bash -c "echo 'What user needs their password change?' ; bash" \
    -x bash -c "read pswu ; bash" \
    -x bash -c "passwd $pswu ; bash"

另一个问题:我想知道如何右键单击文件并使用没有路径或扩展名的文件名运行脚本。

2 个答案:

答案 0 :(得分:2)

尝试这样的事情:

gnome-terminal -t 'Change User Password' -x bash -c "echo 'What user needs their
 password change?' ; read pswu ; passwd \$pswu "

答案 1 :(得分:1)

我认为你正在尝试使用错误的工具来完成这项工作,主要是因为passwd不是从标准输入读取,而是从终端(/ dev / tty)读取。

您可能需要使用expect或其中一项工作。这旨在驱动诸如passwd之类的程序,这些程序是交互式的并且期望终端输入(而不是标准输入)。


看看提议的三重命令,我看不出第三个-x bash将如何从第二个获取信息。我不清楚bash - 脚本内部正在做什么。当然,您将编写一个执行整个作业的脚本,然后调用终端来运行该脚本。在我看来,运行这样的三个命令是非常有问题的。