我正在尝试编写1行while循环,创建一个文件名字符串,如list =“temp0.txt temp1.txt temp2.txt ...”等。我希望它是一个随机数的文件在0到50之间,这就是我到目前为止所做的。
argumentCount=$RANDOM
let "argumentCount %= 50"
i=0
list=""
while [ $i -lt $argumentCount ]; do; touch temp[$i].txt; $list="$list temp[$i].txt; ((i=i+1)); done
countLines $list > output.txt
我试图声明0到50之间的随机数,然后使用while循环我想创建与此随机数相同数量的文件。我想创建一个字符串,其中包含所有文件名依次列出。然后将该字符串传递给 countLines,这是一个接受任意数量文件名作为参数的程序。
我将这组命令存储在一个不同的文件中,我在这个文件的每一行都使用了eval,但它给了我一个语法错误。我有什么办法可以让它发挥作用吗? 感谢
答案 0 :(得分:0)
这将打印一个包含文件名的行:
eval echo temp{1..$((RANDOM%50))}.txt
这将触及文件列表:
eval touch temp{1..$((RANDOM%50))}.txt
这个脚本将完成你所做的所有事情:
#!/bin/bash
list=$( eval echo '"temp["{1..'$((RANDOM%50))'}"].txt"' )
touch $list
countLines "$list" > output.txt