
長いパスを次のように複数行に分割したいと思います。
cd foo1/foo2/foo3/foo4/bar
到着
cd foo1\
foo2\
foo3\
foo4\
bar
答え1
バックスラッシュを使用して長いコマンドを複数行に分割できますが、スラッシュを保持して先行スペースを省略する必要があります。
cd foo1\
/foo2\
/foo3\
/foo4\
/bar
バックスラッシュは行連続インジケータです。 bashがバックスラッシュを見ると、現在の行のバックスラッシュから続くように次の行をマージします。したがって、次の行では先行スペースを使用できません。空白は現在の行で空白になり、「引数が多すぎます」エラーが発生するためです。
答え2
あなたできる配列を使用してこれを行いますが、cd
コマンドは少し複雑に見えます。
path=(
foo1
foo2
foo3
foo4
bar
)
cd "$(IFS=/; echo "${path[*]}")"
配列リテラルは任意のスペースを受け入れます。