您好我尝试编写一个带有两个输入参数的脚本,步骤数为第一个,目录为第二个。脚本应该进入所选目录并随机执行以下步骤之一:
1)创建一个随机名称为5个字符的新目录 2)进入主页或第一个现有的子目录
#!/bin/bash
cd $2
for ((c=1; c<=$1; c++))
do
n2=`expr $RANDOM % 2`
n3=`expr $RANDOM % 2`
if [ $n2 -eq 0 ];then
name=$(tr -dc "[:alpha:]" < /dev/urandom | head -c 5)
mkdir $name
else
if[ $n3 -eq 0 ];then
cd $1
else
first=$(ls -d */)
cd $first
fi
fi
done
当我执行脚本时,我收到一个错误:&#34;第13行:意外令牌附近的语法错误&#39;然后&#39;&#34;&#39; 感谢您的任何建议
答案 0 :(得分:0)
你在第二次开场[
之前忘记了空格。
if [ $n3 -eq 0 ];then
应该工作。
[
必须用括号括起来的原因是[
是一个命令,而不是一些bash内置的特殊语法。它恰好是一个内置命令,但它仍然遵循与任何其他命令相同的语法规则。