特定のエイリアスを定義するユーティリティスクリプトを記述しようとしています。
私のシェルはtcsh
です(変更できません)。
私は以下を試しました
#!/bin/tcsh
alias log 'less ~/logs/log.`date '+%Y%m%d'`''
次に、次のように実行します。
./myscript
log
私が得る出力は:log: Command not found.
当然、次のように実行すると、
source myscript
log
すべて順調。
source ...
を指定せずにそれを行う方法はありますか?
できません。スクリプトを実行すると、新しいシェルが実行されます。エイリアスは親プロセスには表示されません。
指摘されている唯一の方法は、source
を使用して、現在のシェルがスクリプトファイルを(新しいプロセスを開始せずに)処理するようにすることです。