如何使用 gnome-terminal 在脚本中传递参数

如何使用 gnome-terminal 在脚本中传递参数

作为脚本的一部分,我有

gnome-terminal -e "process involving another user"

一旦执行了这行,我就必须在终端中输入该用户的密码 3 次。我想知道如何才能自动执行此操作,也就是说,无需输入密码。

echo "password" (3 times) | gnome-terminal -e "process involving another user"

谢谢@rao_555,但恐怕事情没那么简单。我使用命令

gnome-terminal --working-directory="/var/singlecellserver/single-cell-server" \
    -e "sage -python trusted_db.py -w 50 --untrusted-account untrusted@localhost" &

因此,我不想将参数传递给sage -python ...。一旦sage -python ...启动,我需要输入 3 次不受信任的密码。我试过了

gnome-terminal --working-directory="/var/singlecellserver/single-cell-server" \
    -x sage -python trusted_db.py -w 50 --untrusted-account untrusted@localhost $1 $1 $1 &

但没有成功。

解决了

sudo该问题与和有关ssh。由于需要以 身份启动该进程su,因此通过 访问ssh不受信任的帐户ssh也需要根文件夹中的密钥。

答案1

创建一个 shell 脚本并将命令放入其中,仅将密码作为参数传递一次,然后在脚本中使用 $1 获取密码,

使用 $1 在脚本中的任何位置获取您的密码。

答案2

您可以使用expect

http://www.linuxjournal.com/article/3065

应该足够直接,如果您需要帮助,请发布。

相关内容