2012-11-01 50 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

當您使用$()它是一個命令替換,所以慶典字面上試圖執行一個名爲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

注意:最好使用'$((...))'在'$ [...]'上面 - bash manpage說:*舊格式$ [expression]是已棄用,將在即將推出的版本中刪除。* –

+0

@glennjackman:固定,感謝您的提示=) –