Ubuntu 18.04 终端中的空格问题和/或终端命令“-e”可能不再起作用

Ubuntu 18.04 终端中的空格问题和/或终端命令“-e”可能不再起作用

我好像在追逐自己的尾巴……

终端命令

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”,而是一串以“&&”分隔的命令。

答案1

我无法确定为什么会收到此错误消息

sh: 1: ls -l: not found

但确实实现了我的目标。有效的命令(这是我最终想要的简化版本)是:

gnome-terminal -- /bin/bash -c 'cd .; ls -l; /bin/bash'

我采取的方法是仅在 Ubuntu 上运行它,因此可以“安全地”用 gnome-terminal 替换 x-terminal-emulator 并用 bash 替换 $SHELL。

相关内容