Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Shell-for循环中的增量数_Linux_Shell_Loops_If Statement - Fatal编程技术网

Linux Shell-for循环中的增量数

Linux Shell-for循环中的增量数,linux,shell,loops,if-statement,Linux,Shell,Loops,If Statement,我想使用if和for循环准备一个shell脚本 这个脚本的概念是,我有几个文件夹(名称+编号),如下所示 f0 f1 f2 f3 f4 剧本看起来像 计数=0 因此,脚本将第一个文件夹移动到另一个文件夹(文件夹名称为f So,f+count=f0) 如果成功,它将打印成功并关闭流程。否则它将移动第二个文件夹,如f+count+1=>f+0+1=>f1 mv f1 /tmp 如果此步骤成功,则打印成功并关闭流程,否则再次增加计数=计数+1f+count+1=>f+1+1=>f3 mv f2 /t

我想使用if和for循环准备一个shell脚本

这个脚本的概念是,我有几个文件夹(名称+编号),如下所示

f0

f1

f2

f3

f4

剧本看起来像

计数=0

因此,脚本将第一个文件夹移动到另一个文件夹(文件夹名称为f So,f+count=f0)

如果成功,它将打印成功并关闭流程。否则它将移动第二个文件夹,如
f+count+1=>f+0+1=>f1

mv f1 /tmp
如果此步骤成功,则打印成功并关闭流程,否则再次增加计数=计数+1
f+count+1=>f+1+1=>f3

mv f2 /tmp
这是一个开始:

#!/bin/sh

count=0;
while ! mv "f$count" /tmp 2> /dev/null  
do count=$((count + 1))
done
echo "Success"

你的问题是什么?一定有数百个教程展示了如何在shell中进行算术运算。您尝试过什么?它是如何失败的?你为什么需要使用计数器?只需对f*中的dir执行
;做完成
这是一个良好的开端。请注意,如果计数超过现有目录的最大计数,它可能会进入无限循环。使用
test-df$count | | break
或类似工具很容易修复。似乎它试图移动所有文件夹,我已更新了问题。如果f0被移动,那么我的过程就完成了,因为有时文件夹编号是不同的。因此,如果f0移动->全部关闭,则尝试移动f1。
#!/bin/sh

count=0;
while ! mv "f$count" /tmp 2> /dev/null  
do count=$((count + 1))
done
echo "Success"