2016-08-01 22 views
0

私は通常私の環境(ドッカーと対話ほとんどの別名)、すなわちセットアップにはbashスクリプトを使用します。組み込み、端末の起動スクリプト

# ops-setup.sh 
#!/bin/bash 

PROJECT_NAME="my_awesome_project" 
PROJECT_PATH=`pwd`/${BASH_SOURCE[0]} 
WEB_CONTAINER=${PROJECT_NAME}"_web_1" 
DB_CONTAINER=${PROJECT_NAME}"_db_1" 
alias chroot_project="cd $PROJECT_PATH" 
alias compose="chroot_project;COMPOSE_PROJECT_NAME=$PROJECT_NAME docker-compose" 
alias up="compose up -d" 
alias down="compose stop;compose rm -f --all nginx web python" 
alias web_exec="docker exec -ti $WEB_CONTAINER" 
alias db="docker exec -ti $DB_CONTAINER su - postgres -c 'psql $PROJECT_NAME'" 
# ... 

私が埋め込まれた、端末を開いたとき、私は実行するためにそれらをしたいと思います。

私はStartup Tasksを試しましたが、それらは私の端末のコンテキストでは実行されません。

自分のプロジェクトごとに専用のスクリプトがあるので、.bashrcなどから実行できません。

私のエイリアスを取得するにはどうすればいいですか?は端末を開くときに自動的に設定されますか?


今日私は新しい埋め込み端末を開くたびに. ./ops-setup.shを手動で実行しています。

+0

ファイルに保存します。 '〜/ foobar.sh'と'〜/ .bashrc'から 'source〜/ foobar.sh'を実行します – heemayl

+2

@heemaylは、それを.bashrcに直接入れるのとほとんど同じ効果がありません。何もしたくないですか? –

+0

@LasseMeyer実際には、yes(彼が必要とするもの)、インプリメンテーションでは、(必要なファイルだけをソースして、きれいに) – heemayl

答えて

0

あなたがそうのようなあなたの.bashrcファイルにエイリアスを作成することができます

alias ops-setup='bash --init-file <(echo '. /home/test/ops-setup.sh'; echo '. /home/test/.bashrc')' 

を使用すると、セットアップOPSを呼び出した場合、それはあなたの端末内の新しいbashのを開き、ソースは通常どおりそれを好むの.bashrc自分のスクリプトだけでなく、

これを完全に自動化する唯一の方法は、シェルのソースコードを変更することです。 bashし、それを再コンパイルします。ソースファイルは、ソースコードにハードコードされています。

関連する問題