私はcentosでzshを使用しています。そして、シェルスクリプトを実行したいと思います。このような。
script.sh
#!/bin/sh
# something ..
source ./aliases-file.sh
aliases-file.sh
alias test=ls
alias test2=cat
走る ./script.sh
、エイリアスは現在のセッションに適用されていません。どうすればこれを実行できますか?
script.sh
を実行すると、サブシェルで実行され、エイリアスは呼び出し元のシェル(または参照している現在のセッション)まで伝播されません。 script.sh自体を調達する必要があります:source script.sh
。これにより、コマンドが現在のシェルで実行され、エイリアスが表示されるようになります。
補足:移植性の理由から、前者はPOSIX標準であり、後者はbashismであるため、source
の代わりに.
を使用することを検討する必要があります。