эхо-список/массив в xargs

Нельзя просто вернуть папку обратно?

#!/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

Я что-то пропустил?

1
26.09.2018, 05:19
2 ответа
printf '%s\n' "${list[@]}" | xargs

Это напечатает каждый элемент listв отдельной строке, и этот список с разделителями новой строки -будет передан в xargs.

"${list[@]}"будет расширяться до отдельных элементов listв двойных кавычках. printfбудет повторно использовать свою строку форматирования, если аргументов будет больше, чем заполнителей в строке форматирования.

8
27.01.2020, 23:14

Если список не особенно длинный, вы можете полностью обойтись без 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.

2
27.01.2020, 23:14

Теги

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