Bashエイリアスの置換が必要です(デフォルトではエイリアスのように機能しますが、エイリアスではありません)。
このような置換が必要なのは、スクリプトがエイリアスを使用できないためです。つまり、Bashでエイリアスを手動で実行すると正常に動作しますが、スクリプトの一部として実行すると機能しません。私が知っている解決策は、エイリアスを一時ファイルに入れることですが、このアプローチは望ましくありません。
エイリアスのように動作しますが(ファイルをインポートした後)、スクリプトに自然にアクセスできる「次世代エイリアス」(推論するため)など、私が利用できる代替/類似コマンドのショートカットはありますか?
答え1
存在するman bash
:
シェルが非対話型の場合、エイリアスは以下を除いて拡張されません。拡張エイリアスシェルオプション設定の使用Shoput。
shopt expand_aliases
だから私はスクリプトに追加する必要があると思いますbash
。
テスト:
$ cat 1.sh
#!/bin/bash
alias ll='ls -l'
ll $HOME
$ ./1.sh
./1.sh: line 3: ll: command not found
$ cat 2.sh
#!/bin/bash
shopt -s expand_aliases
alias ll='ls -l'
ll $HOME
$ ./2.sh
total 12
...