私はcentosでzshを使用しています。いくつかのシェルスクリプトを実行したいと思います。このように。
スクリプトファイル
#!/bin/sh
# something ..
source ./aliases-file.sh
エイリアスファイル.sh
alias test=ls
alias test2=cat
実行しましたが、./script.sh
エイリアスは現在のセッションに適用されませんでした。どうすればいいですか?
答え1
これを実行するとscript.sh
サブシェルで実行され、エイリアスは呼び出しシェル(または参照している現在のセッション)に伝播されません。 script.sh自体をインポートする必要がありますsource script.sh
。これにより、コマンドが現在のシェルで実行され、エイリアスが表示されます。
注:移植性のため、前者はPOSIX規格であり、後者はPOSIX規格であるため、.
代わりに使用を検討する必要があります。source
バシズム。