![启动时打开终端并传递命令](https://linux22.com/image/1345652/%E5%90%AF%E5%8A%A8%E6%97%B6%E6%89%93%E5%BC%80%E7%BB%88%E7%AB%AF%E5%B9%B6%E4%BC%A0%E9%80%92%E5%91%BD%E4%BB%A4.png)
我有一个从 Linux 终端运行的 perl 脚本。我希望能够启动,并且当我的桌面环境启动时,它会自动打开我的终端,并传入启动此程序的参数,这些参数是./ttytter.txt -ansi -mentions -vcheck
。
我该如何做这件事?
答案1
有时我们确实需要在终端中运行程序,可以这样做:
xterm -e "sh -c './ttytter.txt -ansi -mentions -vcheck ; read"
最后的“读取”等待您按下回车键,关闭终端。
您可以使用不同的终端程序,并且在最后运行 shell 而不是“读取”,例如:
gnome-terminal -e "sh -c './ttytter.txt -ansi -mentions -vcheck ; exec bash'"
对于某些终端(xterm),您可能不需要 sh -c '' 包装器;但对于某些终端(gnome-terminal),我们显然需要它。
您可以将这样的命令放在 .xinitrc、.xsession 中,或者将其输入到“启动时运行”对话框中。
我认为,如果您选择“在终端中运行”,您也可以使用 freedesktop .desktop 文件/快捷方式执行此操作,但我不知道这是否可行。这将是一个更加用户友好的方式!看看您是否能找到答案……
现在,如果您想对任何 shell 命令执行此操作,则需要担心 shell 转义 - 而且这变得更加困难!或者,可以将命令放入脚本并运行该脚本。
查看命令的退出状态也可能会有帮助,例如 echo $? 其中 0 表示成功。
抱歉我的回答过于复杂,希望能够有所帮助。
答案2
您无需明确启动终端。只需将您的 Perl 脚本添加到~/.xsession
,该文件中的任何命令都将在图形登录后运行。