2012-11-01 3 views
1

Я пытаюсь написать сценарий, который будет генерировать случайное число, а затем создать каталог с таким случайным числом и скопировать его в текстовый файл. Я попробовал все, что я мог думать о Присвоить переменной, но каждый раз, когда я получаюЯвляется ли это незаконным синтаксисом

RANDOM: command not found 
RANDOM: command not found 
bash: //small.txt: No such file or directory 
bash: //small.txt: No such file or directory 

Ниже мой код

#!/bin/bash 
one=$(RANDOM) 
two=$(RANDOM) 

mkdir -p $one 
mkdir -p $two 
echo “BIGGGGGONgrery54y457457yytewrterytyutytytyhtytryrtyrthrthtrhrtyhrthrhtrhrthrthrthrthE”| > $one/small.txt 
echo “B”| > $two/small.txt 
echo "finish -l test me " 
done 

ответ

7

Это не незаконно синтаксис (это не значит, что-то), это просто неправильный синтаксис для того, что вы хотите. Вместо $(RANDOM) вы хотите ${RANDOM} или даже просто $RANDOM.

Когда вы используете $(), это подстановка команд, поэтому bash буквально пытается выполнить команду с именем RANDOM, поэтому вы не получите команду и ничего не измените в своих переменных.

Ваше Перенаправление I/O также выглядит не так ... писать в файл, вы должны использовать:

echo "something" > file 

Обратите внимание, что я удалил |.

+1

Мне срочно нужен кофе. Я не смог это увидеть :-) –

1

FatalError освещена проблема синтаксиса, вот это что-то связано - как сгенерировать случайное число в диапазоне (в данном примере, 1-100):

NUMBER=$((($RANDOM % 100) + 1)) 

Также смотрите: http://www.cyberciti.biz/faq/bash-shell-script-generating-random-numbers/ для других методов/информации о генерация случайных чисел в оболочке

+0

Примечание: лучше использовать '$ ((...))' over '$ [...]' - в файле bash говорится: * Старый формат $ [выражение] устарел и будет удален в следующих версиях bash. * –

+0

@glennjackman: исправлено, спасибо за подсказку =) –

Смежные вопросы