긴 경로를 다음과 같이 여러 줄로 나누고 싶습니다.
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[*]}")"
배열 리터럴은 임의의 공백을 허용합니다.