変数変数名>値はどのように設定しますか?

変数変数名>値はどのように設定しますか?

私は次の設定を持っています:

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"

バラよりBashはポインタの使用をサポートしていますか?

おすすめ記事