Вот очень простой файл test.sh
.Запуск нескольких команд, переданных как аргумент сценария bash
#!/usr/bin/env bash
$1
Когда я бегу ./test.sh "pwd; mkdir a;"
, он возвращает
./test.sh: line 3: pwd;: command not found
Я пытался использовать '&'/'& &'/';', но все не работают. Как я могу запустить несколько команд по формуле?
Попробуйте это Логическое ИЛИ Оператор (||) для запуска нескольких команд см. Https://www.howtogeek.com/269509/how-to-run-two-or-more-terminal-commands-at- once-in-linux/this – Abi
./test.sh; PWD; mkdir a – Hussain
Не могли бы вы объяснить, почему вам нужно передать последовательность команд в качестве аргумента скрипту? Хотя знание ответа на ваш вопрос может быть полезно для вас, вам может быть и что-то еще полезное: научиться избегать передачи команд сценарию в первую очередь, поскольку использование данных, переданных скрипту в качестве кода, часто не является оптимальным с точки зрения безопасности/предотвращения сюрпризов и ошибок. – Fred