Bash - Как поставить переменную в команде? - PullRequest
0 голосов
/ 01 ноября 2011

Какой правильный способ поместить переменную в команду в bash?

Я пытаюсь с:

PORT=80
`nc -zv -w30 127.0.0.1 $PORT >> /dev/null`

но это не сработает.

Ответы [ 2 ]

2 голосов
/ 01 ноября 2011
  1. Вам не нужно использовать обратные пометки, если вы не фиксируете вывод команды.Просто запустите команду.
  2. Если вы выводите вывод в devnull, вам не нужно добавлять (>>), просто напишите (>).
  3. Это должно работать.Если это не работает, что-то еще не так.

    PORT=80
    nc -zv -w30 127.0.0.1 $PORT > /dev/null
    
0 голосов
/ 01 ноября 2011

Полагаю, вы хотите, чтобы вывод команды был сохранен в переменной.Если это так, то вы должны, во-первых, назначить команду переменной, а во-вторых, не отправлять вывод в /dev/null.

x=`nc -zv -w30 127.0.0.1 $PORT`

ИЛИ альтернативный синтаксис:

x=$(nc -zv -w30 127.0.0.1 $PORT)
...