2016-03-22 9 views
1

と一緒に対話的シェルの実行を行うことができます。起動時に私は、ディレクトリを変更する必要があるので、私はこのようにそれをやっている:は、私はGitのバッシュとしてインストールされて<a href="https://www.gnu.org/software/bash/manual/bash.html#Invoking-Bash" rel="nofollow">GNU bash</a>を使用してい--commandオプション

"C:\Program Files\Git\bin\sh.exe" --rcfile "./cd.sh" 

cd.shがちょうどcd /d/コマンドを含む場合。すべてここでうまくいく。でテスト(これは、コマンドを実行

"C:\Program Files\Git\bin\sh.exe" -ic "cd /d" 

:今、私はそれがインタラクティブなままにしたいまだcd.shファイルを取り除くと、パラメータとしてシェルにコマンドを渡す取得しようとしているので、私はこのようにやっていますechoコマンド)、終了します。なぜインタラクティブにならないのですか? man bashから

+0

ちょうどあなたの通常のシェルの初期化スクリプトを使うのか? (つまり、 '.bashrc'などの適切なガードを使って' SHLVL'などで一度だけ実行するようにしてください)。あるいは 'sh'を起動する前にディレクトリを変更してみてください。 –

+0

@EtanReisner、ありがとう、私が@Julien Lopezの回答から理解しているように、 'c'と' i'オプションは一緒に動作しませんよね? –

答えて

1

1は、非オプションの引数なしと-cオプションなしで開始された対話型シェル... man dashから

:もし

なしargsが存在し、シェルの標準入力が端末に接続されている場合(または-iフラグが設定されている場合)、-cオプションが存在しない場合、シェルは対話シェルと見なされます。

+0

'-c'と' -i'は一緒に使うと意味がありません。 –

+0

'-c'を使うと対話型のシェルを持っていません。 @EtanReisnerが示唆しているように、 '〜'以外のディレクトリに端末を開くことが目的なら '.bashrc'であなたのコマンドを追加することができます。 –

関連する問題

 関連する問題