2013-04-28 1 views
0

bash расширяет! Var_ * до определенных vars, которые соответствуют шаблону ($ var_1 $ var_2 и т. Д.), Например.

var_1='' 
var_2='' 
for v in ${!var_*}; do echo $v; done 

возвращает «var_1» и строки «» var_2

Что бы учебник подход к переборе определенных Варс аналогичным образом с/бен/ш? (Это сэкономит при установке bash.)

ответ

0

может быть достаточно?

var_1='' 
var_2='' 
for v in `set | sed -n '/^var_/s/=.*//p'` 
do 
    echo $v 
done 

echo ====== 

var_3='' 
for v in `set | sed -n '/^var_/s/=.*//p'` 
do 
    echo $v 
done 

напечатает

var_1 
var_2 
====== 
var_1 
var_2 
var_3 
+0

Теперь я не знаю, 'set' сделал это, печатает значения всех определенных имен. – user5321531

+0

Да, это похоже на 'printenv', но печатает все переменные, а не только экспортированные. – jm666