所以我试图创建一个bash脚本循环,它接受他们想要的用户文件名和他们想要的文件数并创建空文件。我制作了脚本,但我一直收到错误“./dog.sh:line 6:0]:没有这样的文件或目录”。我是bash脚本的新手,不知道我做错了什么。任何帮助都会很棒,谢谢!
#!/bin/bash
echo "what file name do you want?"; read filename
echo "how many files do you want"; read filenumber
x=$filenumber
if [$x < 0]
then
touch $fiename$filenumber
x=$((x--))
fi
答案 0 :(得分:0)
也许这是一个错字:$ fiename而不是$ filename
另外,您可能需要某种类似的循环:
x=1
while [ $x -le $filenumber ]; do
touch $filename$x
let x=x+1
done
答案 1 :(得分:0)
for x in $(seq "$filenumber"); do touch "$filename$x"; done
seq $filenumber
生成从1到$filenumber
的数字列表。 for
循环依次为这些数字中的每一个分配x
。 touch
的每个值都会运行x
命令。
在bash
中,如果我们可以在命令行中输入正确的文件编号,那么可以在没有for
循环的情况下完成同样的事情:
$ touch myfile{1..7}
$ ls
myfile1 myfile2 myfile3 myfile4 myfile5 myfile6 myfile7
{1..7}
被称为“支撑扩展”。 Bash会将表达式myfile{1..7}
扩展为我们想要的七个文件的列表。
支撑扩张确实有局限性。它不支持shell变量。所以,touch myfile{1..$filenumber}
不起作用。我们必须直接在大括号中输入正确的数字。
答案 2 :(得分:0)
#!/bin/bash
echo "what file name do you want?"; read filename
echo "how many files do you want"; read filenumber
x=$filenumber
while [ $x -gt 0 ]; do
touch $filename$x
x=$(( $x - 1))
done