eval $(other_comand) コマンドのエイリアスを保存する方法

eval $(other_comand) コマンドのエイリアスを保存する方法

docker私はしばらくこれを使用してきましたが、dockerを起動するたびに次のコマンドを作成します。

eval $(docker-machine env)

eval必ず必要な場合以外は使用しないことを知っていますが、以下ではこれについて言及します。

docker-machine env出力環境変数は次のとおりです。

docker-machine env
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://<some_ip>:<some_port>"
export DOCKER_CERT_PATH="/home/gableroux/.docker/machine/machines/default"
export DOCKER_MACHINE_NAME="default"
# Run this command to configure your shell: 
# eval $(docker-machine env)

evalこれをつかみ、現在のセッションにロードします。

それでは、次のようなエイリアスが必要な場合はどうすればよいですか?

alias dockereval="eval $(docker-machine env)"

構文は問題ありませんが、問題は、そのファイルにエイリアスを登録するときに.zshrcドットファイルの内容(例:)が評価されることです。$()source

which dockereval

明らかにする

dockerenv: aliased to eval

私は次のいくつかを試しました。

alias dockereval="docker-machine env | eval"
alias dockereval="docker-machine env | /bin/bash"
alias dockereval="eval `docker-machine env`"

しかし、それらのどれも働かなかった。 2番目はおそらく別のセッションで実行されているので、3番目は$()私が推測したものです。

エイリアスを使用してこれらの環境変数をロードする他の方法はありますか?

ベストアンサー1

エイリアスを二重引用符ではなく一重引用符で囲みます。

alias dockereval='eval $(docker-machine env)'

二重引用符は変数の拡張を許可しますが(少なくともbashでは)一重引用符は許可しません。

おすすめ記事