長いパスを複数行に分割する方法は?

長いパスを複数行に分割する方法は?

長いパスを次のように複数行に分割したいと思います。

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

配列リテラルは任意のスペースを受け入れます。

関連情報