Правильный синтаксис строки сценария bash - PullRequest
1 голос
/ 11 ноября 2019

Написание скрипта для извлечения различных параметров среды обратно из списка серверов. Мой скрипт не возвращает значения при запуске, но та же команда возвращает желаемое значение вне скрипта.

Я попытался использовать несколько вариантов для получения тех же данных. Одна из команд не выполняется из-за ограничений, установленных для учетных записей, к которым у меня есть доступ. Вторая команда работает, но только если она выполняется в режиме с повышенными правами.

Сбой при отказе в доступе (pwdx ограничен)

dzdo pgrep -f /some/path | xargs pwdx

Это работает вне сценария, но не возвращает значения в пределахscript

dzdo /bin/readlink -e /proc/"$(pgrep -f /some/path)"/cwd

При использовании "bash -x" для выполнения моего скрипта я вижу, что код "readlink" пуст.

В идеале я хотел бы вернуть PID и путьпроцесс работает как команда "pgrep". Я могу работать только с путем, который возвращается версией «readlink». Конечная цель - собрать информацию с нескольких серверов для целей аудита. (версия и т. д.)

Я использую неправильный синтаксис для команды "readlink"? Я довольно новичок в написании сценариев bash, поэтому я ценю любые рекомендации, которые помогут понять, когда и к чему, если я использую команду в сценарии против командной строки.

1 Ответ

2 голосов
/ 11 ноября 2019

Если pwdx ограниченная программа, вам нужно запустить ее с dzdo, а не pgrep.

pgrep -f /some/path | dzdo xargs pwdx
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...