Bash — Как поместить переменную в команду?

#bash #variables #scripting #command

#bash #переменные #сценарии #команда

Вопрос:

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

Я пытаюсь с:

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

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

Комментарии:

1. может быть, не отправлять выходные данные в /dev/null?

Ответ №1:

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

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

Комментарии:

1. Это работает, но все равно показывает вывод (> / dev / null не работает)

2. Затем либо удалите -v опцию, либо перенаправьте stderr следующим образом: >/dev/null 2>amp;1 .

Ответ №2:

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

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

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

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