bash : 연관 배열을 매개 변수로 다른 스크립트에 전달

수학 noob

나는 할 수 있기를 원한다 :

Script1.sh

declare -A map=(
  ['A']=1
  ['B']=2
  ['C']=3
  ['D']=4
)

sh script2.sh ???

Script2.sh

params = ...
echo ${params['A']}

즉, 키에 의한 접근 매개 변수. 나는 일반 배열에 대한 관련 질문을 보았고 그에 대한 대답은 배열을 다음과 같이 전달하는 것입니다.

sh script2.sh "${AR[@]}"

내가 생각하는 번역 :

sh script2.sh  "${map[0]}" "${map[1]}" "${map[2]}"

하지만이를 통해 순서에 따라 요소에 액세스 할 수 있습니다.

내가 원하는 것을 달성하는 영리한 트릭이 있습니까? 아마도 "A=1" "B=2" "C=3" "D=4"대신 전달되고 script2.sh구문 분석하는 것이 있습니까? 아니면 더 깔끔한 솔루션이 있습니까?

폴하지 스

내부 에서만 호출하는 경우 @ markp-fuso가 지적했듯이 수행해야 할 일은 소스 이며 모든 데이터가 이미로드 된 현재 컨텍스트에서 실행됩니다.script2.shscript1.shscript2.sh

정말로 그것이 명령 줄에 있기를 원한다면, 그것을 전달하고 key=val코드에서 script2.sh그 형식에 대한 각 인수를 확인하고 연관 배열에 설정하십시오.

declare -A map=()
for arg in "$@"
do if [[ "$arg" =~ ^[A-Z]=[0-9]$ ]] # more complex k/v will get ugly
   then map[${arg/=?}]=${arg/?=}    # as will the assignment w/o eval
   fi
done
# And finally, just to see what got loaded -
declare -p map

$: script2.sh C=3 A=1
declare -A map=([A]="1" [C]="3" )

위에서 언급했듯이 더 복잡한 가능한 키 이름 및 / 또는 값 집합에는 할당 논리뿐만 아니라 적절하게 더 복잡한 테스트가 필요합니다. 분명히 가장 단순한 경우를 제외하고는 이것은 금방 문제가 될 것입니다.

더 나은 방법은 전체 getopts루프를 설정하고 적절한 인디케이터로 인수를 전달하는 것입니다. 이것은 더 많은 디자인과 더 많은 구현이 필요하지만 더 많은 기능을 얻기 위해 필요한 것입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

AWK-bash 스크립트에서 매개 변수로 전달 된 열 합계

분류에서Dev

Coffeescript는 기본 매개 변수가있는 연관 배열을 함수에 전달합니다.

분류에서Dev

Bash는 함수에서 연관 배열을 반환 한 다음 해당 연관 배열을 다른 함수에 전달합니다.

분류에서Dev

Bash는 함수에서 연관 배열을 반환 한 다음 해당 연관 배열을 다른 함수에 전달합니다.

분류에서Dev

Bash에서 배열을 함수 매개 변수로 전달하는 동안 오류가 발생했습니다.

분류에서Dev

Bash 연관 배열을 jq 필터에 인수로 전달

분류에서Dev

배열 변수를 매개 변수로 다른 함수에 전달

분류에서Dev

옵션 / 매개 변수 전달-bash 스크립트에 인수

분류에서Dev

Intersystems 캐시 개체 스크립트는 참조에 의해 매개 변수로 속성을 전달합니다.

분류에서Dev

하나의 powershell 스크립트에서 다른 스크립트로 명명 된 매개 변수 전달

분류에서Dev

bash 스크립트에 매개 변수 (= 경로 *)를 전달하는 방법

분류에서Dev

bash 함수 매개 변수로 전달 된 이름으로 배열에 추가

분류에서Dev

bash-스크립트에 선택적 인수 전달-매개 변수 이름 + 문자열 _ 값

분류에서Dev

하위 bash 스크립트에 다른 $ 0을 전달할 수 있습니까?

분류에서Dev

자바 스크립트의 매개 변수로 다른 함수에 전달되는 함수에서 값을 반환하는 방법은 무엇입니까?

분류에서Dev

파일을 분할하고, 각 부분을 매개 변수로 스크립트에 전달하고, 각 스크립트를 병렬로 실행합니다.

분류에서Dev

파일을 분할하고, 각 부분을 매개 변수로 스크립트에 전달하고, 각 스크립트를 병렬로 실행합니다.

분류에서Dev

VB 스크립트에서 배치 파일로 매개 변수 전달

분류에서Dev

배치 파일에서 MYSQL 스크립트로 매개 변수 전달

분류에서Dev

자바 스크립트로 다음 페이지에 매개 변수 전달

분류에서Dev

Bash는 배열 및 비 배열 매개 변수를 모두 함수에 전달합니다.

분류에서Dev

TextBox 값을 링크 및 매개 변수로 다른 웹 양식에 전달

분류에서Dev

함수 반환을 매개 변수로 다른 함수에 전달

분류에서Dev

구조체 배열을 매개 변수로 함수에 전달

분류에서Dev

bash 스크립트 파일에 매개 변수를 전달하려면

분류에서Dev

Windows 배치 스크립트에서 powershell 스크립트로 매개 변수 전달

분류에서Dev

다른 스크립트로 전달하는 동안 변수 확장을 명령으로 처리하는 Bash

분류에서Dev

함수에서 매개 변수로 전달 될 때 배열의 크기가 다른 이유

분류에서Dev

Windows 배치 파일, 다른 스크립트로 전달할 매개 변수 목록을 만들기 위해 폴더의 파일을 반복

Related 관련 기사

  1. 1

    AWK-bash 스크립트에서 매개 변수로 전달 된 열 합계

  2. 2

    Coffeescript는 기본 매개 변수가있는 연관 배열을 함수에 전달합니다.

  3. 3

    Bash는 함수에서 연관 배열을 반환 한 다음 해당 연관 배열을 다른 함수에 전달합니다.

  4. 4

    Bash는 함수에서 연관 배열을 반환 한 다음 해당 연관 배열을 다른 함수에 전달합니다.

  5. 5

    Bash에서 배열을 함수 매개 변수로 전달하는 동안 오류가 발생했습니다.

  6. 6

    Bash 연관 배열을 jq 필터에 인수로 전달

  7. 7

    배열 변수를 매개 변수로 다른 함수에 전달

  8. 8

    옵션 / 매개 변수 전달-bash 스크립트에 인수

  9. 9

    Intersystems 캐시 개체 스크립트는 참조에 의해 매개 변수로 속성을 전달합니다.

  10. 10

    하나의 powershell 스크립트에서 다른 스크립트로 명명 된 매개 변수 전달

  11. 11

    bash 스크립트에 매개 변수 (= 경로 *)를 전달하는 방법

  12. 12

    bash 함수 매개 변수로 전달 된 이름으로 배열에 추가

  13. 13

    bash-스크립트에 선택적 인수 전달-매개 변수 이름 + 문자열 _ 값

  14. 14

    하위 bash 스크립트에 다른 $ 0을 전달할 수 있습니까?

  15. 15

    자바 스크립트의 매개 변수로 다른 함수에 전달되는 함수에서 값을 반환하는 방법은 무엇입니까?

  16. 16

    파일을 분할하고, 각 부분을 매개 변수로 스크립트에 전달하고, 각 스크립트를 병렬로 실행합니다.

  17. 17

    파일을 분할하고, 각 부분을 매개 변수로 스크립트에 전달하고, 각 스크립트를 병렬로 실행합니다.

  18. 18

    VB 스크립트에서 배치 파일로 매개 변수 전달

  19. 19

    배치 파일에서 MYSQL 스크립트로 매개 변수 전달

  20. 20

    자바 스크립트로 다음 페이지에 매개 변수 전달

  21. 21

    Bash는 배열 및 비 배열 매개 변수를 모두 함수에 전달합니다.

  22. 22

    TextBox 값을 링크 및 매개 변수로 다른 웹 양식에 전달

  23. 23

    함수 반환을 매개 변수로 다른 함수에 전달

  24. 24

    구조체 배열을 매개 변수로 함수에 전달

  25. 25

    bash 스크립트 파일에 매개 변수를 전달하려면

  26. 26

    Windows 배치 스크립트에서 powershell 스크립트로 매개 변수 전달

  27. 27

    다른 스크립트로 전달하는 동안 변수 확장을 명령으로 처리하는 Bash

  28. 28

    함수에서 매개 변수로 전달 될 때 배열의 크기가 다른 이유

  29. 29

    Windows 배치 파일, 다른 스크립트로 전달할 매개 변수 목록을 만들기 위해 폴더의 파일을 반복

뜨겁다태그

보관