В дальнейшем я хотел бы проверить, если данное имя переменной устанавливается:Выбираясь в тестовых сравнениях
$ set hello
$ echo $1
hello
$ echo $hello
$ [[ -z \$$1 ]] && echo true || echo false
false
$hello
С снята с охраны, я ожидал бы тест, чтобы вернуться true
. Что здесь не так? Я бы предположил, что я избегаю доллара неправильно.
TYIA
Другой способ в 'ksh':' typeset -n tmp; TMP = $ 1; [[-z $ tmp]] ... '(Мне нравится избегать« eval »как можно больше (хотя это безопасно в этом конкретном случае). –
@ Dennis: спасибо, хорошо знать, что есть способ в ksh (и мне тоже не нравится «eval», но это единственный переносимый способ). – Gilles