Не удается сохранить идентификатор процесса в сценарии оболочки - PullRequest
0 голосов
/ 04 июня 2018

Я просто пробую сценарий оболочки в Unix.Я хочу записать идентификатор процесса, запущенного на порту с номером 1337. Поэтому я написал следующий фрагмент кода:

echo -e "Test Starts"
process_id= /bin/ps -fu $USER| grep 1337 | grep -v "grep" | awk '{print $2}'
echo $process_id

и сохранил его в файле с именем auto.sh

* 1006.* Теперь, когда я запускаю следующую команду:

./auto.sh

, я получаю вывод, приведенный ниже:

Test Starts
9067

$process_id никогда не отражается.Так что я думаю, это не сохраняется.

Я изучил следующее, но не помогло

Ссылка 1 Ссылка 2

1 Ответ

0 голосов
/ 05 июня 2018

Два способа использования подстановка команд :

  1. Backticks `command` в старом стиле

    echo` id -u`

  2. $() Современный и более читабельный

    echo $ (id -u)

Оба делаютто же самое, оцените, что находится внутри, и затем верните результат команды.

Когда / Почему используйте друг друга:

  • `` Backticks

    Совместимость сРаковины Олдерса

  • $ ()

    Трудно отличить **** and **'** ( '``' '`` ``' '')

    Подстановка вложенных команд более проста

    echo $ (uname && $ (echo id -u))

    Linux 15444

\\echo `uname &&` echo id -u``

 -bash: command substitution: line 2: syntax error: unexpected end of file
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...