Linux で長いコマンドを環境変数に保存するにはどうすればいいですか?

Linux で長いコマンドを環境変数に保存するにはどうすればいいですか?

以下の長いコマンドを単純に実行したいだけです。

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[@]}"

関連情報