web-dev-qa-db-ja.com

gnome-terminal --disable-factoryサポートの問題

$ gnome-terminal  --tab  --title="700"  --disable-factory  -e

Failed to parse arguments: Option "--disable-factory" is no longer supported in this version of gnome-terminal.

GNOME 3を使用しています。

1

実行中のgnome-terminalプロセスの複数のインスタンスが本当に必要な場合(しかし、なぜそうする必要があるのですか?)、gdbを除いて https://wiki.gnome.org/Apps/Terminal/Debugging の手順に従ってください部。

1
egmont

読者の利益のために。

問題

オプション--disable-factory削除 V3.8のgnome-terminalにあり、この動作を簡単な方法でアーカイブする 方法なし があります。少なくとも、方法はありません。これは、シェル構文に堪能でない人に説明できます。

したがって、コマンドライン

gnome-terminal  --tab  --title="700" --disable-factory -e ...

質問に示されたエラーで失敗します。

この非常に個人的なサイドノートを言い訳してください:私は本当にこの重要なオプションが削除された理由を理解していない。 Microsoftでさえ、cmdExplorer、またはpowershellをブロックする方法で実行するオプションを導入しました。 Microsoftはユーザーの声に耳を傾けます。しかし、Gnomeはそうではありません。隠しオプション--disable-factoryを公式に文書化する代わりに、Gnomeはそれを突然削除しました。彼らがこのコースを続ければ、長期的にマイクロソフトに勝つでしょう。それは非常に非常に悲しいと異常な愚かです。 (この暴言は申し訳ありませんが、言わなければなりません。)

ところで:Ubuntu 16.04 復元済み--disable-factoryこの機能をエミュレートするラッパーを使用しています。 ( このラッパーの複雑さを見てください の場合、私の暴言は以前よりもさらに適用されます。)

バリアント0

私はこれを0と呼びます。なぜなら、両方とも本当に適切な解決策ではないからです。適切なソリューションは、バリアント1に示されています。

ヴァリアント0a

最初に試すことができるのは、オプション--disable-serverを削除することです。

gnome-terminal --tab --title="700" -e ...

ただし、これには次の欠点があります。

これはgnome-terminalが終了するまで待機しません。別のgnome-terminalが実行されている場合、コマンドはすぐに戻ります。通常、これはあなたが望むものではありません。なぜなら、これは、最初にオプション--disable-factoryが存在した理由です。

バリアント0b

したがって、このオプションを削除することは、すべての場合で他のgnome-terminalが実行されていないことを確認できる場合にのみ実行可能です。

これに当てはまらないが、別の実行gnome-terminalをサポートしてはならない場合、次の別個のフォールバックバリアントを試すことができます

killall -9 gnome-terminal
gnome-terminal  --tab  --title="700" -e ...

しかし、注意してください!これは、まだ開いているすべてのgnome-terminalsを無条件で強制終了します。 実稼働環境では、これは通常よりも大きな害をもたらします。警告されました!

バリアント1

gnome-terminalで実行する必要がなく、他のターミナルエミュレータで実行できる場合。 @muruは良い代替品をコメントしました。

xfce4-terminalgnome-terminalとほぼ同じオプションのセットを理解します(そして、長年gnome-terminalに欠けていた他の非常に便利なオプションを追加します)。また、--disable-factoryに対してgnome-terminalが実行したことを文書化したオプションもあります。オプション--tabgnome-terminalとは異なる働きをするため、何かを機能させるためには削除する必要があります。置き換えは次のとおりです。

xfce4-terminal --title="700" --disable-server -e ...

また、ウィンドウを閉じる前にコマンドの完全な出力を表示できるようにする場合は、--holdオプションを追加できます。

xfce4-terminal --hold --title="700" --disable-server -e ...

xfce4-terminalには小さな競合状態があり、残念ながら出力が切り捨てられるため、--holdは完全には有効ではないことに注意してください。これを適切に修正(コピーアンドペーストを使用できるように)することは答えの範囲を超えていますが、通常echo $? && read -t.1で(背後で)実行されるスクリプトに-eを少し追加します99%の時間で解決します。

メッセージが表示された場合、xfce4-terminalが欠落しているため、最初にインストールする必要があります。別のデスクトップバリアント(Xfce)に属している場合でも、gnomeと並行してインストールできます。

Sudo apt-get install xfce4-terminal

唯一の欠点は、xfce4-terminalgnome-terminalとは別の外観を持ち、他の

バリアント2..∞

その問題を修正するために、他の無限の可能なバリアントがあります。それらのほとんどは本当に複雑です。普通の人にとってはあまりにも複雑すぎます。シェルに夢中ではない人。

だから私は彼らを置き去りにします。私の推奨事項は次のとおりです。

@muruで述べたように、xfce4-terminalの代わりにgnome-terminalを使用してみてください。

シェルを覗く人への注意

すべての単純なソリューションは、コマンドの戻り値を返さないため、完全ではありません(gnome-terminalも返さない)。悲しいかな。これを修正するには、これはまったく別の話です。

1
Tino

バリアント3。

https://unix.stackexchange.com/a/502498/303187 クロスポストを避けるために、リンクを離れるだけです。読みたい場合はそれをフォローしてスクロールダウンしてください。 /に配置するアーカイブには、作成するすべてのファイルがあります

0
Lauri