web-dev-qa-db-ja.com

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」だけでなく、「&&」で区切られた一連のコマンドが必要です。

2
Bernmeister

エラーメッセージが表示された理由を特定できませんでした

sh: 1: ls -l: not found

しかし、私の目標を達成することができました。動作するコマンド(最終的に必要なものの簡易バージョン)は次のとおりです。

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

私はこれをUbuntuでのみ実行しているため、x-terminal-emulatorをgnome-terminalに、$ Shellをbashに置き換えるのは「安全」であるというアプローチを取りました。

0
Bernmeister