$ OUT=$(bc <<< "2 ^ 256")
$ echo "$OUT"
11579208923731619542357098500868790785326998466564056403945758400791\
3129639936
$ OUT=${OUT//$'\\\n'/}
$ echo "$OUT"
115792089237316195423570985008687907853269984665640564039457584007913129639936
x??
расширен во время вызова функции. Таким образом, Ваша функция уже вызвана с xaa xab xac
... .
Самый простой путь состоял бы в том, чтобы изменить упорядочивание Ваших параметров:
makeaudiobook () {
count=1
almbumartist=$1
shift
for f in "$@"; do
preprocess "$f" > "$f"-preprocessed
text2wave "$f"-preprocessed -o "$f".wav
lame -b 16 --tt "$f" --ta "$albumartist" --tl "$albumartist" --tn "$count" "$f".wav "$f".mp3
rm -rf "$f".wav "$f"-preprocessed
count=$(($count+1))
done
}
(посмотрите, как я поместил "
вокруг каждой переменной - это должно предотвратить плохие вещи, если у Вас есть пробел в Ваших именах файлов, что часто происходит со звуковыми файлами),
и назовите его с makeaudiobook haskell x??
, т.е. с повернутыми аргументами.
in "$@"
избыточно.for <...>; do
циклами по умолчанию по массиву параметров. – l0b0 28.02.2013, 12:23