エイリアスに含まれるドル記号を適用せずにエイリアスを定義するにはどうすればよいですか?

エイリアスに含まれるドル記号を適用せずにエイリアスを定義するにはどうすればよいですか?

私はエイリアスを持っています:alias gwanip=echo "$(dig +short myip.opendns.com @resolver1.opendns.com)。これはbashrcを取得するたびにdigコマンドを実行することに気づいたことを除いてうまくいきます。機能を維持しながら(つまり、gwanipを呼び出す私のIPをエコーする)bashrcがソースされるたびに実行しないようにするにはどうすればよいですか?

答え1

ドル記号を避けるか、役に立たない部分を取り除くだけですecho $( ... )

alias gwanip="dig +short myip.opendns.com @resolver1.opendns.com"

または代わりにシェル関数を使用してください。

function gwanip {
  dig +short myip.opendns.com @resolver1.opendns.com
}

shortdigシェル関数を使用すると、より一般的な関数を作成して呼び出すこともできます。

function shortdig {
  dig +short "$1" "$2"
}

function gwanip {
  shortdig "myip.opendns.com" "@resolver1.opendns.com"
}

マニュアルにはbash次の内容が含まれています。

ほとんどすべての目的で、エイリアスはシェル関数に置き換えられます。

答え2

ドル記号を取り除くだけです。

関連情報