bashスクリプトエイリアスコマンドの実行がzshでは機能しません。

bashスクリプトエイリアスコマンドの実行がzshでは機能しません。

私は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バシズム

関連情報