この関数でエイリアスを再定義できるようにします。bashエイリアスの再定義
私はこれを試してみましたが、これは簡単に同じ名前の関数で新しいエイリアスを定義することで実現できます(下記の例を参照)。
しかし、私はこれが正しい方法であることを非常に疑う。同じ結果を達成するためのベストプラクティスは何でしょうか?
コード例:
#!/bin/bash
# alias.sh
shopt -s expand_aliases
# Must set this option, else script will not expand aliases.
alias testal="echo 1"
testal
settestal() {
echo "in f: call testal"
testal
echo "in f: redefine"
alias testal="echo '2'"
echo "in f: call testal"
testal
echo "in f: end f"
}
settestal
testal
その結果、1は見るでしょう:
1
in f: call testal
1
in f: redefine
in f: call testal
1
in f: end f
2
行う理由あなたはそれが正しくないと思いますか? –
...ここで珍しいのは、関数だけではなく、エイリアス*を使用することです。 –
これは正しい方法だと思いませんか?何が良いでしょうか? – Barmar