У меня есть сценарий оболочки, без которого я просто не могу обойтись: bar от Theiling Online
Я часто использую SSH на разных * nix серверах. Однако я не являюсь системным администратором и обычно не имею времени или привилегий для его установки на каждом сервере, к которому я подключаюсь.
Это, по-видимому, очень переносимый sh
сценарий, в котором есть параметры командной строки для экспорта себя в качестве функции оболочки, что заставило меня задуматься: могу ли я использовать одну из субъективно неясных функций OpenSSH, чтобы экспортировать ее везде, куда бы я ни пошел?
Моей первой мыслью было присвоить исходный код переменной среды, например, BAR = "cat -v"
и затем выполнить ее с другой стороны как `$ BAR`, но 1) я даже не могу заставить пример cat работать локально, 2) я не знать, как поместить фактический многострочный источник скрипта в переменную окружения и 3) мне еще не удалось увидеть машину с PermitUserEnvironment
включенным.
Я думаю, что я мог бы даже сделать с опцией ssh написать файл с именем ~/bar
при входе в систему, но более изменчивое решение было бы лучше.
Звонок wget http://.../bar
при входе в систему будет неприемлемым.
Есть идеи?
PS Специфичные для шпатлевки решения, хотя я сомневаюсь, что они существуют, тоже подойдут
Редактировать: причина, по которой я не хочу использовать wget и другие файловые решения, заключается в том, что я не хочу оставлять отметку, поскольку иногда я подключаюсь как пользователь других пользователей или как root. Я также не хочу, чтобы каждый сервер, к которому я подключаюсь, делал HTTP-запрос. Я хочу, чтобы это было как можно меньше.
AcceptEnv = LANG LC_*
что все рассматриваемые машины имеют, что означает, что я мог бы использовать взломать как использованиеLC_BAR
вместоBAR
.LocalCommand
кажется, настроен локально, и я смог выполнитьecho
, но я не знаю, как экспортировать переменную среды (или две) оттуда.export x=y
не работал