나는 다음과 같은 설정을 가지고 있습니다 :
NODEX="sn1"
varname="${NODEX}_payTimestamp"
echo "${!varname}"
> sn1_payTimestamp
"sn1_payTimestamp" 변수의 값을 설정하는 방법은 무엇입니까?
그런 것?
${!varname}=$(date --utc +%Y%m%d_%H%M%SZ);
미리 감사드립니다
고쳐 쓰다
연관 배열이 가장 좋은 솔루션인 것 같습니다. 텍스트 파일에 저장하고 텍스트 파일에서 읽을 수 있는 좋은 방법이 있습니까? 그래서 "변수 변수명"을 사용하겠습니다.
답변1
Bash를 사용하는 경우 대신 연관 배열을 사용하세요.
#!/bin/bash
declare -A paytimestamps
node=sn1
paytimestamps[$node]=$(date --utc +%Y%m%d_%H%M%SZ);
echo "${paytimestamps[$node]}"
또는 실제로 명명된 변수를 사용하려면 nameref를 사용하세요.
#!/bin/bash
node=sn1
declare -n "ref=paytimestamps_$node"
ref=$(date --utc +%Y%m%d_%H%M%SZ);
echo "$ref"
답변2
사용 eval
. 인수를 일반 명령문으로 구문 분석합니다.
#!/bin/bash
NODEX="sn1"
varname="${NODEX}_payTimestamp"
eval $varname=$(date --utc +%Y%m%d_%H%M%SZ)
echo $varname
echo ${!varname}