web-dev-qa-db-ja.com

Bashエイリアス-現在の場所を失うことなく、別のフォルダーでファイルを実行するにはどうすればよいですか?

.bashrcフォルダーに素敵な小さなbashエイリアスがあります。これにより、最初にフォルダーにcdすることなくTomcatを実行できます。

alias startTomcat="cd ~/Apache-Tomcat-7.0.34/bin/ && ./startup.sh"

ただし、端末でstartTomcatを実行すると、起動したフォルダーから起動され、現在は端末が~/Apache-Tomcat-7.0.34/bin/にあります。もちろんこれは予想される動作ですが、私がやりたいのは、別のフォルダに巻き込まずにコマンドを実行することです。

.bashrcファイルで元の場所を保存してから戻る、またはcdingなしでstartup.shを元のフォルダーから実行するを実行できますか?

ありがとう!!

4
yochannah

startup.shの絶対パスを使用して、次の場所にあるフォルダーのcdに使用できます。

alias startTomcat="~/Apache-Tomcat-7.0.34/bin/startup.sh"

または、cd -を使用して、前回のディレクトリに戻ることができます。

alias startTomcat="cd ~/Apache-Tomcat-7.0.34/bin/ && ./startup.sh && cd -"
9
Radu Rădeanu

Raduの答えは良いですが、ユースケースによっては、pushdおよびpopdを使用することもできます。これにより、ディレクトリを保存および復元できます。次のようなもの:alias startTomcat="pushd ~/Apache-Tomcat-7.0.34/bin; ./startup.sh; popd"

2
Joshua Snider