我正在尝试编写一个脚本,该脚本将生成一个随机数,然后创建一个名为该随机数的目录并复制到文本文件中。我已经尝试了一切我能想到的分配变量,但每次我得到
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
答案 0 :(得分: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/了解有关shell中随机数生成的其他方法/信息