Bash 언어에서 파일 경로 목록을 어떻게 정의합니까?

Bash 언어에서 파일 경로 목록을 어떻게 정의합니까?

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

각 변수 확장 참조가 중요합니다.

관련 정보