いくつかの名前付きディレクトリに基づいて、zsh で関数を定義するツールを作成しようとしています。現在、私はこれを持っています:
while read line; do
p=( `echo $line | egrep -o -e "[^ ]+"` )
alias go${p[1]}="cd ${p[2]}"
put${p[1]}()
{
mv $1 ${p[2]}
}
done < "$HOME/.pro_targets"
これはエイリアスに対して機能しますが、コマンドラインで put[target] と入力すると、
mv: cannot mv 'wol.sh' to '$HOME/work/tagfs/fuse-tutorial/src': No such file or directory
の最後の値を参照します$p
。${p[2]}
変数を閉じて、定義されたときの環境に基づいて置換する関数が必要だと思います。これにより、定義ごとに変化する可能性があります。