- Решайтесь, если это
dstep
илиdlstep
. Из этой ошибки Bash :
for i in
BashParser выполняет BraceExpansion перед любыми другими расширениями или заменами. Таким образом, код расширения фигурной скобки видит литерал
$n
, который не является числовым, и, следовательно, он не расширяет фигурные скобки в список чисел. Это делает почти невозможным использование расширения скобок для создания списков, размер которых известен только во время выполнения.Сделайте это вместо этого:
for ((i=1; i<=n; i++)); do ... done
Или используйте
seq
.Ваш скрипт читает
$cindex_
как переменную с именемcindex_
. Вы хотите$_
.Кавычки переменные правильно. Это может быть не решающим здесь, но в целом. Например:
mkdir "$_$dindex"
Там нет шебанга. Это не имеет значения, если вы поставили сценарий; но если вы запустите его, там должен быть шебанг, как
#!/bin/bash
или#!/usr/bin/env bash
. Из-за$1
и$2
т. Д. Я предполагаю, что скрипт предназначен для запуска.
Создание документов не работает
245
Bercovici Adrian
Здравствуйте, я пытаюсь создать папки и назвать их в соответствии с входными параметрами Что не так в этом скрипте?
root=$1 clcount=$2 clstep=$3 delay=$4 dstep=$5 echo $root echo $clcount echo $clstep echo $delay echo $dstep echo creating docs for dindex in {$delay..100..$dlstep} do for cindex in {$clcount..1..$clstep} do fname=$cindex_$dindex rm -rf $fname mkdir $cindex_$dindex done done echo All finished
Скрипт не будет создавать какую-либо папку ... и он как-то не объединяет значения $cindex
и dindex
в строку.
Расширение скобки работает только с литеральными значениями, а не с переменными. Вместо этого используйте `seq`.
choroba 5 лет назад
0
1 ответ на вопрос
2
Kamil Maciorowski
Но в моем случае `n` - это аргумент, полученный от ввода. Так мне не нужно` i <= $ n`?
Bercovici Adrian 5 лет назад
0
@BercoviciAdrian Этот синтаксис `for` не нуждается в` $ `. Просто попробуйте.
Kamil Maciorowski 5 лет назад
0
Похожие вопросы
-
2
.profile в Mac OS X?
-
1
Приостановить все, кроме x задач, интенсивно использующих процессор
-
10
Как я могу найти в истории bash и повторно запустить команду?
-
-
2
Можно ли передать выходные данные одной команды двум другим командам?
-
8
Переименуйте группу файлов одной командой
-
2
Почему мой путь не обновляется * сейчас *?
-
5
Как удалить символическую ссылку на каталог?
-
8
Спаси меня от бессмысленного терминала
-
9
Как можно добавить номер строки и табуляцию к каждой строке текстового файла?
-
1
Когда я должен положить конфигурации в .bashrc против. .bash_profile?