Задать вопрос
@xhimik

Как выполнить команду из переменной, для #!/bin/sh (не bash)?

andrey@andrey-System-Product-Name ~ $ komand7="echo 555"; for i in 1 2 3 4 5 6 7 8 9; do a="\$komand$i"; $a; done
$_komand1: команда не найдена
$_komand2: команда не найдена
$_komand3: команда не найдена
$_komand4: команда не найдена
$_komand5: команда не найдена
$_komand6: команда не найдена
$_komand7: команда не найдена
$_komand8: команда не найдена
$_komand9: команда не найдена
andrey@andrey-System-Product-Name ~ $ $_komand7
555
andrey@andrey-System-Product-Name ~ $

Почему в программе переменная не преобразуется в команду?
Но при ручном вводе отлично работает?
-------------------------------------------------------------------------------------------------------------------------
Нашел для себя ответ:
komand7="echo 555";komand9="ls -l"; for i in 1 2 3 4 5 6 7 8 9; do a="\$komand$i";echo $i; eval $a; done
  • Вопрос задан
  • 5443 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 2
DevMan
@DevMan
komand7="echo 555"
for i in 1 2 3 4 5 6 7 8 9; do
	a="komand$i"
	${!a}
done
ideone.com/ShIYWg
Ответ написан
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer
komand7="echo 555"; for i in 1 2 3 4 5 6 7 8 9; do a="\$komand$i"; eval $a; done
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
only-victor
@only-victor
bash: x='echo "ok"'
bash: $x
результат:
"ok"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы