この記事を読んだ後、非対話型シェルでいくつかのエイリアスを使用したいと思います。この投稿そしてこの投稿。これは私のコマンドです:
bash -O expand_aliases -c 'source ~/.bashrc; <some alias>'
これは私のものです.bashrc
:
# Bash History
HISTSIZE=1000
HISTFILESIZE=2000
# Colorful Prompt
PS1='\[\033[01;34m\]\w\n\[\033[01;32m\]\u@\h\[\033[00m\] > '
# Aliases
alias ls='ls --color=auto -A -I NTUSER.\* -I ntuser.\*'
alias echo='echo -e'
alias docker='"/mnt/c/Program Files/Docker/Docker/resources/bin/docker.exe"'
alias docker-compose='"/mnt/c/Program Files/Docker/Docker/resources/bin/docker-compose.exe"'
echo
何かを入力しましたが、うまくいくと.bashrc
確信していますが、source ~/.bashrc
エイリアスは拡張を拒否します。私も次のことを試しました。
bash -O expand_aliases -c shopt
オプションがオンにexpand_aliases
なっていることを確認してください。
どうすれば解決できますか?
ベストアンサー1
非常に簡単な解決策は、エイリアスの代わりに関数を使用することです。関数がエイリアスよりも良い状況はたくさんありますが、私が知っている限り、その逆がどのような状況であるかを知っている人はいません。
docker () { "/mnt/c/Program Files/Docker/Docker/resources/bin/docker.exe" "$@"; }
docker-compose () { "/mnt/c/Program Files/Docker/Docker/resources/bin/docker-compose.exe" "$@"; }
(私はあなたls
とecho
エイリアスを譲渡することを拒否します。彼らは利益よりも害を及ぼすようです。)