Я написал bash-скрипт для своего использования, и он работает. Я хочу, чтобы этот сценарий был размещен на каком-либо сервере в моей сети, и вызываю этот сценарий на ноутбуках / настольных компьютерах в моей сети для выполнения. В любом случае, я нашел способ для этого, как показано ниже.
Шаги:
chmod a+x
. curl
Теперь с самого клиентского терминала выполните команду как:
sudo curl -kL http://serverip/script.sh | bash
Работает нормально, но единственная проблема в том, что в моем скрипте я использовал команды ввода пользователя, такие как «переменная чтения», которые не работают в этом сценарии. Так как это сделать, это моя проблема. Есть ли способ для меня?
Можно использовать:
bash -c "$(curl -kL http://serverip/script.sh)"
Это выполнит сценарий на локальной машине. См. также man bash
для понимания, почему я использовал -c
опция. Также двойные кавычки очень важны в этом случае.
кроме того, поскольку @terdon сказал в , его комментарий , sudo curl
бессмыслен. Если, Если для сценария нужно локальный sudo
полномочия, необходимо использовать sudo
перед bash
команда.
Я думаю , что Вы хотите,
wget http://server.com/scriptname.sh && bash scriptname.sh
, Который просто загрузит сценарий локально и выполнит его.
Как предложено в комментарии Radu, почему не использование ssh
для запуска сценария с локального сервера?
Первая установка openssh-server
в Вашей клиентской системе:
sudo apt-get install openssh-server
Тогда от Вашего локального сервера:
ssh -t client_login@client_ip '/path_to_your_script/script.sh'
-t
опция в ssh -t
сила команды pseudo-tty выделение.