У меня есть 3 сценария Bash, и я хочу, чтобы запускаться одновременно в одной строке

Пример: 1.sh, 2, sh, 3.sh

sudo /etc/init.d/{1,2,3}.sh

Но не работает. И crontab не принимает этот формат

Примечание: я не хочу использовать:

sudo /etc/init.d/1.sh && sudo /etc/init.d/2.sh && sudo /etc/init.d/3.sh

Спасибо

3 ответа3

1

Попробуй это:

sudo sh -c "/etc/init.d/{1,2,3}.sh"
1
eval "sudo "/etc/init.d/{1,2,3}.sh";"

или же

for i in {1..3}; do sudo /etc/init.d/${i}.sh; done
1

Не совсем понятно, почему вы не хотите использовать «&&», но если это из-за того, что каждый из них возвращает выход OK, вы можете использовать «;» вместо

Вы также можете использовать sudo для запуска оболочки с «-c» для передачи аргументов в командной строке, поэтому каждый скрипт может быть запущен только с 1 вызовом sudo.

sudo /bin/bash -c "/path/to/script1; /path/to/script2; /path/to/script3"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .