Выполнить сценарий автоматически через pbrun?

find -iname '*.xml'

Иначе Ваша оболочка расширяется *.xml кому: XYZ.xml, и команда, которая на самом деле выполняется,

find -iname XYZ.xml

Причина это работает, при отсутствии XML-файлов в текущем каталоге, состоит в том, который обычно окружает подстановочные знаки отпуска, нерасширенные, если они ничему не соответствуют. В целом любое время Вы хотите, чтобы подстановочные знаки были расширены программой кроме оболочки (например, find, tar, scp, и т.д.) необходимо заключить им в кавычки так, оболочка не попытается развернуть их сама.

1
05.08.2011, 13:34
1 ответ

Я не знаю, являются ли оболочкой сервера, в которую Вы входите, исходные Korn Shell, но если так, можно изменить конец pbsu сценарий так, чтобы

   [ -n "$REMOTEHOST" ] && /usr/local/bin/pbrun -h $REMOTEHOST -u $USERNAME /usr/local/bin/pbksh $LOGIN_SWITCH
   [ -n "$REMOTEHOST" ] || /usr/local/bin/pbrun -b -u $USERNAME /usr/local/bin/pbksh $LOGIN_SWITCH

становится

   [ -n "$REMOTEHOST" ] && /usr/local/bin/pbrun -h $REMOTEHOST -u $USERNAME /usr/local/bin/pbksh $LOGIN_SWITCH ${@:2}
   [ -n "$REMOTEHOST" ] || /usr/local/bin/pbrun -b -u $USERNAME /usr/local/bin/pbksh $LOGIN_SWITCH ${@:2}
.

Затем Вы смогли бы просто отправить команды на сервер, не входя в оболочку, с помощью

pbsu - sftwrk01 -c "your commands here"

(Следите за кавычками!) Так, для Вашего примера, это было бы

pbsu - sftwrk01 -c "ls -lrt var/can/log"

(Заметьте, между прочим, что Вы не должны изменяться на некоторый каталог для списка его содержания - просто дают название того каталога к ls команда, как показано выше.)

5
27.01.2020, 23:17
  • 1
    +1 для получения информации @rozcietrzewiacz, я предполагаю это, является единственным возможным путем (кроме редактирования .profile), как сказано Вами. + 1 к ответу также... большое спасибо :) –  munish 05.08.2011, 15:57
  • 2
    Никакая проблема :) И благодарит принять несмотря на все! –  rozcietrzewiacz 05.08.2011, 16:15

Теги

Похожие вопросы