web-dev-qa-db-ja.com

スクリプトを呼び出したシェルにエイリアスを「エクスポート」できますか?

特定のエイリアスを定義するユーティリティスクリプトを記述しようとしています。
私のシェルはtcshです(変更できません)。

私は以下を試しました

#!/bin/tcsh  
alias log 'less ~/logs/log.`date '+%Y%m%d'`''

次に、次のように実行します。

./myscript  
log

私が得る出力は:log: Command not found.

当然、次のように実行すると、

source myscript  
log

すべて順調。

source ...を指定せずにそれを行う方法はありますか?

14
RonK

できません。スクリプトを実行すると、新しいシェルが実行されます。エイリアスは親プロセスには表示されません。

指摘されている唯一の方法は、sourceを使用して、現在のシェルがスクリプトファイルを(新しいプロセスを開始せずに)処理するようにすることです。

18
Matteo