GNU/Linux >> Znalost Linux >  >> Linux

Vytváření proměnné pomocí hodnoty proměnné jako součásti nového názvu proměnné?

Snažím se vytvořit novou proměnnou pomocí hodnoty existující proměnné jako součásti názvu proměnné.

filemsg"$word1"=" "

Také jsem to zkusil

filemsg$word1=" "

filemsg${word1}=" "

při všech pokusech dostanu následující, když se tento řádek spustí,

cicserrors.sh[45]: filemsgCICS= : not found [No such file or directory]

Přijatá odpověď:

Použijte eval :

filemsgCICS=foo
word1=CICS
eval "echo "$filemsg$word1"" # => foo
eval "filemsg$word1=bar"
echo "$filemsgCICS" # => bar

ale dobře si rozmyslete, jestli to opravdu potřebujete tímto způsobem.

Jiný způsob v ksh93 je použít namerefs:

word1=CICS
nameref v=filemsg$word1
v="xxx" 
echo "$filemsgCICS" # => xxx

Pro ještě více ošklivých hacků, jako je tento, se podívejte sem.


Linux
  1. Použití odkazu na proměnnou bashového řetězce v Sed?

  2. Apache – vytvoření *.local Ssl certifikátu?

  3. Formát souborů cookie při používání Wget?

  1. Vytváření mnoha adresářů pomocí Mkdir?

  2. Obrazovka Gnu:Změna názvu nového okna?

  3. Java se nemůže připojit k okennímu serveru X11 pomocí 'localhost:10.0' jako hodnoty proměnné DISPLAY

  1. pomocí awk s podmínkami hodnoty sloupce

  2. Jak extrahovat hodnotu (v konkrétním řádku a sloupci) ze souboru a přiřadit ji k nové proměnné

  3. Najít soubor odpovídající určitému vzoru a dát tomuto názvu souboru jako hodnotu proměnné ve skriptu shellu?