find -iname '*.xml'
Иначе Ваша оболочка расширяется *.xml
кому: XYZ.xml
, и команда, которая на самом деле выполняется,
find -iname XYZ.xml
Причина это работает, при отсутствии XML-файлов в текущем каталоге, состоит в том, который обычно окружает подстановочные знаки отпуска, нерасширенные, если они ничему не соответствуют. В целом любое время Вы хотите, чтобы подстановочные знаки были расширены программой кроме оболочки (например, find
, tar
, scp
, и т.д.) необходимо заключить им в кавычки так, оболочка не попытается развернуть их сама.
Я не знаю, являются ли оболочкой сервера, в которую Вы входите, исходные 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
команда, как показано выше.)