〜/ .bashrcを読み取った後、新しいbash内で1回実行されるbashのコマンドラインでコマンドを指定するにはどうすればよいですか?しかし、コマンドの終了後にbashを終了させずにこれをすべて実行しますか?
terminator の「boot-up-configuration」をいじっています。ここで、いくつかの分割は、起動後にいくつかのアプリケーション(vim、mutt、irrsi)を起動する必要があります。しかし、私はまだバックグラウンドで通常のシェル(ctrl-zなど...)が必要なので、アプリケーションを終了した後、eapplicationsの存続期間中に持っていたのと同じシェルがあります...
私にとってうまくいかないこと(与えられた答えに基づく)
( bash; vim ) # vim waits for the exit of bash...
bash -c vim # bash exits after vims exit...
bash -c 'vim; exec bash' # bash is executed _after_ vim... ctrl-z won't work
echo vim | bash -s # "Vim: Warning: Input is not from a terminal"
一時的なbashrcに「vim」を手動で追加することも機能しません。 vimは正しく起動しますが、ctrl-zが表示されるバックグラウンドbashはまだありません。
助言がありますか?
ジョブ制御が機能するように、これを解決する方法を見つけたようです。
bash --rcfile <(cat $ {HOME} /。bashrc; echo'export Prompt_COMMAND = "vim; export Prompt_COMMAND =" ')-i
これにより、カスタムbashrcファイルがその場で作成され、Prompt_COMMAND変数を使用してVimの開始を遅らせ、ジョブ制御が機能するようにします。もちろん、これはVim固有ではないように一般化することができます。
さて、これをターミネーターでテストしたところ、少なくとも設定ファイルで動作するようです。
[profiles]
[[default]]
use_custom_command = True
custom_command = "bash --rcfile <(cat ${HOME}/.bashrc; echo 'export Prompt_COMMAND="vim; export Prompt_COMMAND="') -i"
bash -c 'vim; exec bash'
exec bash
は、現在のBashインスタンスを新しいインスタンスに置き換えます。
(Ab).bashrc
の使用は、のみ使用可能な方法です。1 ただし、生成は不要です。コマンドを環境変数に入れてeval
するだけです。
~/.bashrc
の最後に次のように入力します。
[[ $startup_cmd ]] && {
declare +x startup_cmd
eval "$startup_cmd"
}
このコマンドを開始するようにターミネーターを構成します。
env startup_cmd='vim' bash
1 「C4を使ってナッツを割る」ものは除外しましょう。
Ctrl-zを出力する機能を備えたtmuxウィンドウでvimを生成したいという状況で、これと同じ問題が発生しました。結局、私はそれをバッシュの中できれいに行う方法を理解することができませんでした。私は次のことに決めました:
tmux new-session -d -s foo
tmux send-keys -t foo:0.0 "vim
"
bash --rcfile <(cat ${HOME}/.bashrc; echo 'trap vim 12'; echo 'echo $$>/tmp/foo'; echo '( sleep 1;kill -12 `</tmp/foo`; )' ) -i
「カスタムbashrcファイルオンザフライ」のユーザーworに感謝します!
他の重要な部分は "trap"、bash-builtin:です。
ちなみに、あなたが言っている「ターミネーター」が何なのかわかりません。
Bashとscreenを使った解決策を探しているときにこれを見つけました。