Нельзя просто вернуть папку обратно?
#!/bin/bash -l
#$ -S /bin/bash
#$ -N $1
rm -rf ~/.minecraft
cp -rn /media/$1/MC/minecraft ~/.minecraft
java -jar Minecraft.jar
rm -rf /media/$1/MC/minecraft
cp -rn ~/.minecraft /media/$1/MC/minecraft
Я что-то пропустил?
printf '%s\n' "${list[@]}" | xargs
Это напечатает каждый элемент list
в отдельной строке, и этот список с разделителями новой строки -будет передан в xargs
.
"${list[@]}"
будет расширяться до отдельных элементов list
в двойных кавычках. printf
будет повторно использовать свою строку форматирования, если аргументов будет больше, чем заполнителей в строке форматирования.
Если список не особенно длинный, вы можете полностью обойтись без xargs
list=(a b c)
# With xargs
printf "%s\n" "${list[@]}" | xargs foo # Results in « foo a b c »
# Without xargs
foo "${list[@]}" # Also results in « foo a b c »
Конечно, применимость этого к вашей ситуации зависит от дополнительных флагов (, если таковые имеются ), которые вы хотите передать вашей фактической команде xargs
.