
以下の長いコマンドを単純に実行したいだけです。
docker ps -a --format "table {{.Image}}\t{{.Ports}}"
export view='docker ps -a --format "table {{.Image}}\t{{.Ports}}"'
テスト
echo $view
docker ps -a --format "table {{.Image}}\t{{.Ports}}"
環境変数実行
$view
結果終了 エラーコード
しかし、以下のように実行されます。
"docker ps" accepts no argumets.
See 'docker ps --help'
Usage: docker ps [OPTIONS]
List containers
つまり、このような長いコードを環境変数として保存することはできないのでしょうか?
可能であれば、別の方法を知ることはできますか?
答え1
配列として保存し、正しく引用符で囲む必要があります。そうすることで、正しく展開されることが保証されます。
cmd=("docker" "ps" "-a" "--format" "table {{.Images}}\t{{.Ports}}")
"${cmd[@]}"