Команда перезапуска не использует новую конфигурацию Upstart. Есть еще несколько вещей, которые она не выполняет. Подробности см. ниже: http://upstart.ubuntu.com/cookbook/#restart
Расширение фигурной скобки не определяется POSIX как таковое, для преобразования необходимо использовать параметры из других средств подачи жалоб POSIX. Одним из таких способов было бы использование таблицы ASCII для отображения преобразования значений ASCII символов в их значение символов с помощью printf()
. Найдите man ascii
для отображения значений.
i=1
asciiStart=97
asciiEnd=99
while [ "$i" -le 5 ]
do
while [ "$asciiStart" -le "$asciiEnd" ]
do
echo "$HOME$i$(printf "\\$(printf '%03o' "$asciiStart")")"
asciiStart=$((asciiStart + 1))
done
asciiStart=97
i=$(( i + 1 ))
done
Вероятно, нет,поскольку, если бы была другая функция, которая делала то, что делает расширение фигурной скобки, не было бы необходимости в раскрытии фигурной скобки...
Обратите внимание, что если ваши списки не являются статическими (, например. верхний предел варьируется ), тогда вы также не можете легко использовать раскрытие скобок в Bash, поскольку {1..$n}
не делает то, что вы хотите (скобки раскрываются перед переменными ).
С другой стороны, если ваши списки являются статическими, нетрудно просто использовать какую-либо другую программу для создания списков и вставки их непосредственно в скрипт, так что вы просто получите:
for x in 1 2 3 4 5; do
for y in a b c; do
echo "$HOME$x$y"
done
done
Использование while
для создания списка символов также может показаться немного сложным в оболочке.
Итак, извините, но это похоже на то, что было бы проще сделать на каком-то другом языке. Как Перл:
highnum=5 highchar=c perl -le 'for $x (1..$ENV{highnum}) {
for $y ("a"..$ENV{highchar}) {
print "$ENV{HOME}/$x$y"; } }'