while 循环语句的问题{n=01while [ $n -lt $HowMany ]do*生成文件 指定目录"$Name"$n.typesleep "$Times"slet n++done}现在的执行结果正常,但是 会出现 序列的问题,也就是 1-9 排列正常,但是10就排列不正常了,排列
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/06 12:48:44
![while 循环语句的问题{n=01while [ $n -lt $HowMany ]do*生成文件 指定目录](/uploads/image/z/3654303-15-3.jpg?t=while+%E5%BE%AA%E7%8E%AF%E8%AF%AD%E5%8F%A5%E7%9A%84%E9%97%AE%E9%A2%98%7Bn%3D01while+%5B+%24n+-lt+%24HowMany+%5Ddo%2A%E7%94%9F%E6%88%90%E6%96%87%E4%BB%B6+%E6%8C%87%E5%AE%9A%E7%9B%AE%E5%BD%95%22%24Name%22%24n.typesleep+%22%24Times%22slet+n%2B%2Bdone%7D%E7%8E%B0%E5%9C%A8%E7%9A%84%E6%89%A7%E8%A1%8C%E7%BB%93%E6%9E%9C%E6%AD%A3%E5%B8%B8%2C%E4%BD%86%E6%98%AF+%E4%BC%9A%E5%87%BA%E7%8E%B0+%E5%BA%8F%E5%88%97%E7%9A%84%E9%97%AE%E9%A2%98%2C%E4%B9%9F%E5%B0%B1%E6%98%AF+1-9+%E6%8E%92%E5%88%97%E6%AD%A3%E5%B8%B8%2C%E4%BD%86%E6%98%AF10%E5%B0%B1%E6%8E%92%E5%88%97%E4%B8%8D%E6%AD%A3%E5%B8%B8%E4%BA%86%2C%E6%8E%92%E5%88%97)
while 循环语句的问题{n=01while [ $n -lt $HowMany ]do*生成文件 指定目录"$Name"$n.typesleep "$Times"slet n++done}现在的执行结果正常,但是 会出现 序列的问题,也就是 1-9 排列正常,但是10就排列不正常了,排列
while 循环语句的问题
{
n=01
while [ $n -lt $HowMany ]
do
*生成文件 指定目录"$Name"$n.type
sleep "$Times"s
let n++
done
}
现在的执行结果正常,但是 会出现 序列的问题,也就是 1-9 排列正常,但是10就排列不正常了,排列显示的时候 会排在1的下面.
现在我想更改成 0001 0002 0003...序列的样式 [单位为千位]
是不是在 n++后面多添加2个加号?
while 循环语句的问题{n=01while [ $n -lt $HowMany ]do*生成文件 指定目录"$Name"$n.typesleep "$Times"slet n++done}现在的执行结果正常,但是 会出现 序列的问题,也就是 1-9 排列正常,但是10就排列不正常了,排列
shell还没有那么智能,只是一个比较简单的解释程序,一旦当成数值来运算前导零就没了.都是通过指定format的方法来生成相应的文件名.
假定要touch 5000 个.type文件,可以用for循环结合seq命令来实现
#!/bin/bash
for n in $(seq -f "%04g" 1 5000) ; do
touch $n.type
sleep 1
done
上面的seq命令会生成从0001,0002到5000的数字,最终得到0001.type, 0002.type, ... ,5000.type
如果想把1转换为0001,也可以使用printf
printf "%04d" 1
会输出0001