Один из способов избежать разбиения слов в bash - использовать массив для переноса каждого аргумента без необходимости экранирования:
push(){ args[${#args[*]}]="$1"; }
build() {
args=()
for file
do push "-F"
push "filedata=@$file"
done
}
build "$@"
curl --progress-bar -i "${args[@]}" https://transfer.sh | grep https
Функция build
создает массив args
и функция push
добавляет новое значение в конец массива. curl
просто использует массив.
Первую часть можно упростить, поскольку push
также можно записать просто как args + = ("$ 1")
, поэтому мы можем удалить его и изменить build
до
build() {
args=()
for file
do args+=("-F" "filedata=@$file")
done
}
комментарий dubiousjim указал на мою проблему:
I think git will break hard links every time you checkout a new copy of the file. EDIT: Yes, I just verified it will, even if the hard links are in a single repo
Я также столкнулся с той же проблемой при написании с помощью TextEdit. Итак, я попробовал команду cat, и она сработала отлично.