【问题标题】:Bash script help with echo and commands带有回显和命令的 Bash 脚本帮助
【发布时间】:2011-05-13 16:02:21
【问题描述】:

我要做的是让这个脚本读取用户输入,然后他们使用用户输入执行命令。我让 echo 工作了,但之后我无法让其余的工作。

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"

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

【问题讨论】:

    标签: bash shell terminal gnome


    【解决方案1】:

    试试这样的:

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

    【讨论】:

      【解决方案2】:

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

      您可能需要使用expect 或它的各种类似方法之一。这旨在驱动诸如 passwd 之类的交互式程序,并且需要终端输入(而不是标准输入)。


      查看提议的三重命令,我看不出第三个-x bash 将如何从第二个获取信息。我也不清楚bash-inside-the-script 在做什么。当然,您会编写一个完成整个工作的脚本,然后调用终端来运行该脚本。在我看来,运行三个这样的命令非常有问题。

      【讨论】:

      • +1 表示“错误的工作工具”。有专门为这项任务设计的工具,expect 可以说是最好的。
      • 恐怕乔纳森和布莱恩误解了这个问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多