긴 경로를 여러 줄로 분할하는 방법은 무엇입니까?

긴 경로를 여러 줄로 분할하는 방법은 무엇입니까?

긴 경로를 다음과 같이 여러 줄로 나누고 싶습니다.

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

배열 리터럴은 임의의 공백을 허용합니다.

관련 정보