рабочий стол Unity

Оценивать всю команду (Не только аргументы)

eval ">\"dist/support.txt\" cat ${component_data_pattern}";
test -s "dist/all.c";

Мне это не нравится, но это работает. Учитывая, что мы пытаемся расширить шаблон, который включает в себя как фигурные скобки, так и файловые шаблоны, один из которых имеет место до раскрытия переменной, а другой — после, может не быть альтернативы чему-то подобному :ручному расширению переменной в строку, которая включает весь вызов команды, и используя эту строку в качестве аргумента для evalили bash -c. Не забудьте экранировать внутренние кавычки с помощью \".

В приведенном выше примере других аргументов нет. Если есть другие аргументы, и они также используют какую-то замену, вам нужно экранировать (с помощью \$, \*, \{или \}), чтобы они не раскрывались до тех пор, пока команда наконец оцениваются, и их можно интерпретировать в контексте.

readonly annoying_arg="$PWD/src/docs/test data.txt";
eval ">\"dist/support.txt\" cat ${component_data_pattern} \"\$annoying_arg\"";
test -s "dist/all.c";
1
08.03.2021, 18:34
1 ответ

Судя по картинке, которую вы добавили, имя содержит пробел, это UnityHub.AppImage. Вот почему добавлен %20, это представление пробела в кодировке URL. Поэтому переименуйте его в UnityHub.AppImage(, удалите пробел перед точкой ), исправьте имя изображения в exec, и вы сможете найти и запустить приложение.

1
18.03.2021, 22:26

Теги

Похожие вопросы