複数のターミナルタブを異なるフォルダ(作業ディレクトリ)で開く方法は?


10

1つのスクリプトで複数のタブを異なるフォルダーで開く必要があります。

検索中にこのエントリが見つかりましたが、以下のようなやり取りで、ホームフォルダに3つのタブがあるターミナルが開きました。エラーメッセージは示した:

Failed to parse arguments: Unknown option --execute=cd /some/thing/

スクリプトは次のようになります。

#!/bin/sh
gnome-terminal --tab --execute="cd /some/thing/" \
          --tab --execute="cd /home/" \
          --tab --execute="cd /home/" \
exit 0

--working-directory = "/ some / thing /"のバリエーションも役に立ちませんでした。間違いはありますか?

回答:


8

次はoneiricで私のために働きます。これをバージョンの代わりに使用できます:

#!/bin/bash
gnome-terminal --tab  --working-directory="/var/www/" --tab --working-directory='/home/' --tab --working-directory='/home/'
exit 0

3

特定のエラーは、--executeオプションを正しく使用していないことが原因です。以下のmanページからの抜粋を見ると、コマンドラインの残り全体を実行するだけなので、構文の一部として等号がリストされて--execute いないことがわかります。正しい使用例は次のとおりです。

gnome-terminal --execute play '/home/cjohnson/Still Alive.mp3'

重要な注意:とにかく、
使用cdは少し特殊なケースです。cdほとんどのコマンドとは異なり、独自のバイナリ/実行可能ファイルを起動しません。これはbash(または使用しているシェルによって)直接解釈されます。したがって、呼び出しを試みるcdことは、--executeおよび-xフラグ(子プロセスを直接生成したいと思われる)と一致しません。同じbashように直接処理される他のコマンドでも同じ問題が発生します(私は確認しました)home。等号なしで適切に使用した場合でも、「ファイルまたはディレクトリが見つかりません」というエラーが発生します。したがって、--working-directory=[DIRECTORY]オプションを使用することは、やりたいことを行うための最善の策です。

その他の重要な注意:
これが当てはまらない場合でも、問題が発生します。問題は、--execute実際にオプションの意味を意図しているときにオプションを使用しようとすることです--command。マニュアルページのドキュメントでは、それは具体的に述べています

-e、--command = STRING 端末内でこのオプションの引数を
実行します

-x、--execute ターミナル内の残りのコマンドラインを
実行します。

(強調鉱山)

言い換えれば、あなたが思っているようにそれを解析することはおそらくないでしょう。を使用--executeすると、以降のオプションをに渡すことができなくなりますgnome-terminal

複数のコマンドを別々のタブで実行する自分のスクリプトの1つからの抜粋(プライバシー/セキュリティのために名前を変更):

gnome-terminal --tab --command="ssh cjohnson@GLaDOS" --tab --command="ssh drattman@GLaDOS"

(ちなみに、またはで--commandフラグを使用しようとすると、おなじみの「そのようなファイルまたはディレクトリはありません」エラーが発生します。)cdhome

これが長すぎないことを願っています。私はただ徹底しようとしています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.