シェルスクリプトでevalを使用して出力にネストされた特殊文字を割り当てる方法

シェルスクリプトでevalを使用して出力にネストされた特殊文字を割り当てる方法

他の変数が関連付けられている変数に特別なチャーターを割り当てようとしています。

[root@STAGING scripting]# FILLBLANK=*******
[root@STAGING scripting]# k=1
[root@STAGING scripting]# eval echo  \"\${FILLBLANK$k}\"
***
[root@STAGING scripting]#

ここで出力を変数にどのように割り当てることができますか?

[root@STAGING scripting]# a=$(eval echo  \"\${FILLBLANK$k}\")
[root@STAGING scripting]# echo $a
= 1 b `echo filledvalue output reference.properties safe.sh sshpass-1.05-
1.el6.x86_64.rpm storefront_properties.sh storefront_properties.sh_bkp 
test.sh
[root@STAGING scripting]#

ベストアンサー1

次の変数を作成してfoo1そのうちの1つをfoo2拡張したい場合evalいいえ。 Bash、ksh、および Zsh は、索引付け専用に設計された配列および関連配列をサポートします。バラよりBashGuide配列の紹介

$ foo[0]=aa
$ foo[1]=bb
$ k=1
$ echo "${foo[$k]}"
bb

参考にしてください引用符上。実際、あなたの質問は以下にも関連しています。引用符。に割り当てる代わりに印刷します(実際には印刷aに拡張)。echo

$a=*
$エコー "$a"
*
$エコ$a
[ファイル名がいっぱい...]

おすすめ記事