「エイリアス」のようないくつかのbashコマンドで空白が許可されないのはなぜですか? [閉鎖]

「エイリアス」のようないくつかのbashコマンドで空白が許可されないのはなぜですか? [閉鎖]

等号の横にスペースがあると、bashのaliasコマンドが機能しないことがわかります。例えば、

alias loadcode='vim *.c *.h Makefile'

有効ですが

alias loadcode ='vim *.c *.h Makefile'

または

alias loadcode= 'vim *.c *.h Makefile'

または

alias loadcode = 'vim *.c *.h Makefile'

動作しません。なぜこれですか?

ベストアンサー1

aliasこれは、別名を照会し、一度に複数の別名を設定するために使用できるためです。

$ alias foo                       # query for one alias
bash: alias: foo: not found

$ alias foo = bar                 # query for three aliaes
bash: alias: foo: not found
bash: alias: =: not found
bash: alias: bar: not found

$ alias foo=bar doo=dar           # set two aliases
$ alias doo                       # query one alias
alias doo='dar'

$ alias foo = bar                 # query three, again
alias foo='bar'
bash: alias: =: not found
bash: alias: bar: not found

(エイリアスの名前が間違っているのではなく、エイリアスが見つからないと表示される=理由を尋ねないでください。

もちろん、これはシェル変数の割り当ての空白がどのように機能するかと一致します。

$ foo=bar doo=dar
$ echo "$doo"
dar

おすすめ記事