Редактировать: я создаю bash-скрипт для запуска запросов Netezza.
вот пример того, что мне нужно сделать:
nzsql -host localhost -port 123456 -d db -u usr -pw pwd -A -t -c "insert into TABLE (name,surname) values ('m','sc')"
и он должен вернуть
INSERT 0 1
Мне нужно получить число «1», которое означает, что была вставлена 1 строка.
Для этого мне нужно получить всю строку «INSERT 0 1» и поработать с ней..
в соответствии с http://www.enzeecommunity.com/thread/2423 это должно работать:
cmnd_output=`nzsql -host $NZ_HOST -d $NZ_DATABASE -u $NZ_USER -pw $NZ_PASSWORD -A -t -c "insert into TEST values ('test 1')"`
Но я не могу заставить его работать с этим: ($ 2 правильно, потому что когда я запускаю его изтерминал работает просто отлично)
cmd_out=`$2` or cmd_out=`"$2"` or cmd_out="`$2`" or cmd_out=`"'$2'"`
cmd_out=$($2) or cmd_out="$($2)" or cmd_out=$("$2")
Он говорит мне, что команда не найдена ... точно так же, как если бы была проблема с "строковой кавычкой" с $ 2
Мне, однако, удалосьвыполнить $ 2 с помощью eval
eval "$2"
, и это прекрасно работает, команда $ 2 выполняется просто отлично.Но я не могу использовать eval в этом случае, так как хочу сохранить в переменной «INSERT 0 1».
Спасибо