创建文档不起作用

创建文档不起作用

您好,我正在尝试生成文件夹并根据输入参数命名它们。这个脚本有什么问题?

root=$1
clcount=$2
clstep=$3
delay=$4
dstep=$5

echo  $root
echo  $clcount
echo  $clstep
echo  $delay
echo  $dstep

echo creating docs

for dindex in {$delay..100..$dlstep}
  do 
     for cindex in {$clcount..1..$clstep}
     do
        fname=$cindex_$dindex
        rm -rf $fname
        mkdir $cindex_$dindex        
     done
done

echo All finished 

该脚本不会创建任何文件夹..并且它以某种方式不会将和的值连接$cindexdindex字符串中。

答案1

  1. 请决定是dstep还是dlstep
  2. 这个 Bash 陷阱

    for i in {1..$n}

    BashParser 在执行任何其他扩展或替换之前执行 BraceExpansion。因此,括号扩展代码看到的文字$n不是数字,因此它不会将花括号扩展为数字列表。这使得使用括号扩展来创建仅在运行时才知道大小的列表几乎不可能。

    这样做:

    for ((i=1; i<=n; i++)); do
    ...
    done
    

    或者使用seq

  3. 您的脚本将读取$cindex_名为 的变量cindex_。您想要${cindex}_

  4. 正确引用变量。这可能在这里并不重要,但一般来说如此。例如:

    mkdir "${cindex}_$dindex"
    
  5. 没有 shebang。如果您获取了脚本,这无关紧要;但如果您运行它,应该有一个类似#!/bin/bash或 的shebang #!/usr/bin/env bash。由于等$1$2我猜这个脚本是要运行的。

相关内容