这是非法的语法

时间:2012-11-01 13:29:16

标签: bash

我正在尝试编写一个脚本,该脚本将生成一个随机数,然后创建一个名为该随机数的目录并复制到文本文件中。我已经尝试了一切我能想到的分配变量,但每次我得到

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

2 个答案:

答案 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中随机数生成的其他方法/信息