У меня есть функция, которая проверяет состояние выхода предыдущей команды и должны запустить несколько команд, если не 0 (успех)передачи команд с пробелами в качестве аргументов функции
revert()
{
if [ $? -ne 0 ]
then
echo $#
for c in [email protected]
do
Execute command contained in passed string
done
echo "Operation failed. Reverting..."
exit 1
fi
}
Я пытаюсь вызвать эту функцию и я получаю этот выход:
revert "ls" "ls -la"
2
ls ls -la
auten.py canReach.sh chpass.sh newUser.sh popo secdir.sh
auten.py canReach.sh chpass.sh newUser.sh popo secdir.sh
No command '-la' found, did you mean:
Command 'tla' from package 'tla' (universe)
-la: command not found
Очевидно, что пространство является проблемой, и я попытался несколько решений на этой странице, но все, что я получил тот же вывод, и один ОГРОМНАЯ БОЛЬ.
Итак, прежде чем отвечать, попробуйте мою функцию и посмотрите, сможете ли вы получить желаемый результат. Спасибо.
Что делать, если одна из команд на самом деле должна содержать пробел? возможно, вам нужен мета-синтаксис, например 'find' для команд:' revert ls \; ls -la'? – Eevee