IT TIP

Bash 스크립트에서 키-값 쌍을 만드는 방법이 있습니까?

itqueen 2020. 11. 19. 22:42
반응형

Bash 스크립트에서 키-값 쌍을 만드는 방법이 있습니까?


Bash 스크립트를 사용하여 키 값 쌍의 사전을 만들려고합니다. 이 논리를 사용하려고합니다.

declare -d dictionary
defaults write "$dictionary" key -string "$value"

... 어디에 $dictionary변수가 있지만 작동하지 않습니다.

Bash 스크립트에서 키-값 쌍을 만드는 방법이 있습니까?


bash 버전 4에서 연관 배열이 도입되었습니다.

declare -A arr

arr["key1"]=val1

arr+=( ["key2"]=val2 ["key3"]=val3 )

이제 arr 배열에는 세 개의 키 값 쌍이 포함됩니다. Bash는 정렬이나 팝업 등으로 할 수있는 작업이 상당히 제한되어 있습니다.

for key in ${!arr[@]}; do
    echo ${key} ${arr[${key}]}
done

모든 키 값을 반복하고이를 에코합니다.


간단한 구분자를 사용할 수 있다면 매우 간단한 oneliner는 다음과 같습니다.

for i in a,b c_s,d ; do 
  KEY=${i%,*};
  VAL=${i#*,};
  echo $KEY" XX "$VAL;
done

이에는 i문자와 같은 순서로 가득 "a,b"하고 "c_s,d". 각각 공백으로 구분됩니다. 다음에는 매개 변수 대체do사용 하여 쉼표 앞 부분과 그 뒤 부분을 ​​추출 합니다.,


영구 키 / 값 저장소의 경우 https://github.com/damphat/kv-bashkv-bash 에서 사용할 수있는 키 / 값 데이터베이스의 순수 bash 구현 인을 사용할 수 있습니다.

용법

git clone https://github.com/damphat/kv-bash
source kv-bash/kv-bash

영구 변수를 만들어보십시오.

kvset myName  xyz
kvset myEmail xyz@example.com

#read the varible
kvget myEmail

#you can also use in another script with $(kvget keyname)
echo $(kvget myEmail)

참고 URL : https://stackoverflow.com/questions/14370133/is-there-a-way-to-create-key-value-pairs-in-bash-script

반응형