Bash 언어로 경로 목록을 정의하는 방법은 무엇입니까?
다음과 같은 것이 필요합니다.
list_of_paths = ["$Home/MyDir/test.c", "$Home/YourDir/file.c"]
답변1
bash
다음 명령을 사용하여 배열을 만들 수 있습니다
mypaths=( "/my/first/path" "/my/second/path" )
배열의 요소는 개별적으로 할당될 수도 있습니다.
mypaths[0]="/my/first/path"
mypaths[1]="/my/second/path"
주위에는 공백이 없어야 합니다 =
.
이에 대해서는 매뉴얼의 "어레이" 섹션에 설명되어 있습니다 bash
.
배열을 사용하십시오:
printf 'The 1st path is %s\n' "${mypaths[0]}"
printf 'The 2nd path is %s\n' "${mypaths[1]}"
for thepath in "${mypaths[@]}"; do
# use "$thepath" here
done
대안 /bin/sh
( bash
다른 sh
유사한 쉘에서도 작동함):
set -- "/my/first/path" "/my/second/path"
printf 'The 1st path is %s\n' "$1"
printf 'The 2nd path is %s\n' "$2"
for thepath do
# use "$thepath" here
done
/bin/sh
이는 위치 인수 목록( $1
, $2
등 $3
또는 집합적으로 )인 쉘의 배열만 사용합니다 $@
. 이 목록에는 일반적으로 스크립트나 셸 함수에 대한 명령줄 인수가 포함되어 있지만 스크립트에서 사용할 수도 있습니다 set
.
마지막 루프는 다음과 같이 작성할 수도 있습니다.
for thepath in "$@"; do
# use "$thepath" here
done
각 변수 확장 참조가 중요합니다.