我好像在追我的尾巴……
终端命令
x-terminal-emulator -e ${SHELL}' -c cd\ .;"ls";'${SHELL}
在 Ubuntu 14.04/16.04/18.04 上运行时会启动一个新终端并列出当前目录(如预期的那样)。
如果我修改命令以包含“-l”参数
x-terminal-emulator -e ${SHELL}' -c cd\ .;"ls -l";'${SHELL}
我在 Ubuntu 14.04/16.04 上得到了预期的结果,但在 18.04(作为 VirtualBox 下的虚拟机)上,启动的终端包含以下消息:
sh: 1: ls -l: not found
我在 Ubuntu 17.10 上运行了这两个命令,虽然这两个命令都产生了预期的结果,但我注意到以下消息:
Option “-e” is deprecated and might be removed in a later version of gnome-terminal.
Use “-- ” to terminate the options and put the command line to execute after it.
Warning: DESKTOP_STARTUP_ID not set and no fallback available.
底线:我无法弄清楚我是否遇到了一些新问题,即在最新终端中处理不同的空格和/或现在必须使用“--”并且我使用的命令不正确。
最终,我不仅想要“ls -l”,还想要一串命令,用“&&”分隔。
我无法确定收到错误消息的原因
但确实实现了我的目标。有效的命令(这是我最终想要的简化版本)是:
我采用了仅在 Ubuntu 上运行它的方法,因此将 x-terminal-emulator 与 gnome-terminal 和 $SHELL 与 bash 交换是“安全的”。