Articles of for loop

bash脚本 – 无法获得循环工作

背景信息: 我试图按照这里张贴的例子: http : //www.cyberciti.biz/faq/bash-for-loop/我想循环9次使用控制variables名为“我”。 问题描述 我的代码如下所示: for i in {0..8..1} do echo "i is $i" tmpdate=$(date -d "$i days" "+%b %d") echo $tmpdate done 当我运行这个代码时,debug打印给我看: "i is {0..8..1}" 而不是0到8之间的值。 我到目前为止检查: 我试图检查我的bash版本,以确保它支持这种types的语法。 我正在运行版本4,2,25(1) 我也尝试使用C语法,你为(i = 0; i <= 8; i ++),但这也不起作用。 任何build议,将不胜感激。 谢谢。 编辑1 我也尝试了下面的代码: for i in {0..8}; do echo "i is $i" tmpdate=$(date […]

在文件的每一行前面打印文件的名称

我有很多文本文件,我想在Linux中创build一个bash脚本来打印文件的每一行文件的名称。 例如我有文件lenovo.txt,我希望文件中的每一行都以lenovo.txt开头。 我试图为此做一个“为”,但没有工作。 for i in *.txt do awk '{print '$i' $0}' /var/SambaShare/$i > /var/SambaShare/new_$i done 谢谢!

Bash字母数字列表生成

我需要打印这样的东西: a b c . . . z A B C . . . Z 0 1 2 . . . 9 这是可以单独完成的。 for f in {a..z}; do echo $f; done for f in {A..Z}; do echo $f; done for f in {0..9}; do echo $f; done 但我怎么能在一个呢? 也许这样? 但是不行。 for f in {a..z:A..Z:1..9}; do […]

bash – 不包括“$(find …)”中的文件中的目录“

我必须做一个脚本,它将所有* .txt文件从主目录复制到在此脚本的第一个参数($ {1})中指定的新创build的目录中。 如果备份目录已经存在,我想跳过它。 我正在尝试-prune排除查找,但它不适用于我。 最后,我已经在循环中,如果声明,这也是行不通的,我不知道为什么…谢谢你的帮助! 这是我的代码: #!/bin/bash mkdir ${1} for file in $(find ~/ -name *.txt) do if [ ! -f ~/${1}/$file ] then cp -i -v $file -t ~/${1} fi done

循环和睡在bash脚本

我有一个for循环的bash脚本,我想睡X秒。 #!/bin/sh for i in `seq 8`; do ssh w$i 'uptime; ps -elf|grep httpd|wc -l; free -m; mpstat'; done & pid=$! kill -9 $pid 在Bash中: sleep 2 2秒睡2秒。 我想在2秒后自动杀死pid。

shell脚本循环通配符匹配的目录

我试图循环通过匹配通配符的目录。 这在命令行中工作正常。 但在Shell脚本中不起作用。 任何想法? for dirs in /var/www/html/my.domain.com/v*; do echo $dirs; done; 以上命令列出 /var/www/html/my.domain.com/v1.0 /var/www/html/my.domain.com/v1.2 /var/www/html/my.domain.com/v2.0 这是Shell脚本版本。 它不工作: dirs=/var/www/html/my.domain.com/v* for dir in $dirs do echo "$dir" done 试过这个: dirs=`/var/www/html/my.domain.com/v*` #back quotes for dir in $dirs do echo "$dir" done

Bash语法错误:操作数预期

我有两个我想循环的数组。我正确地构造这些数组,并且在进入for循环之前,我确实回应它们以确保数组中的一切都正常。 但是当我运行脚本时,它会输出一个错误: l<=: syntax error: operand expected (error token is "<=" 我咨询了强大的谷歌,我知道它缺乏第二个variables,但我早些时候提到我的确反映了价值观,一切似乎都没有问题。 这是摘录 #!/bin/bash k=0 #this loop is just for being sure array is loaded while [[ $k -le ${#hitEnd[@]} ]] do echo "hitEnd is: ${hitEnd[k]} and hitStart is: ${hitStart[k]}" # here outputs the values correct k=$((k+1)) done k=0 for ((l=${hitStart[k]};l<=${hitEnd[k]};l++)) ; do //this is […]

如何在bash中遍历一个十进制数的范围?

我想生成一个等间隔十进制数的序列。 例如,我想要echo 3.0和4.5之间的所有数字,步骤0.1 。 我试过$ for i {3.0..4.5..0.1}; do echo $i; done $ for i {3.0..4.5..0.1}; do echo $i; done $ for i {3.0..4.5..0.1}; do echo $i; done ,但是这给了一个错误。 我也尝试$ for i in $(seq 3.0 4.5 0.1); do echo $i; done $ for i in $(seq 3.0 4.5 0.1); do echo $i; done $ for […]

Bash循环数组(*)中的文件只显示第一个元素

我想把当前目录的文件放在一个数组中,并用这个脚本来回显每个文件: #!/bin/bash files=(*) for file in $files do echo $file done # This demonstrates that the array in fact has the values from (*) echo ${files[0]} ${files[1]} echo done 输出: echo.sh echo.sh read_output.sh done 有谁知道为什么只有第一个元素打印在for循环?

Linux Bash使用进度条迭代文件夹

我正在写一个脚本来处理文件夹。 运行时间相当长,所以我想添加一个进度条。 这是迭代: for file in */ do #processing here, dummy code sleep 1 done 有一个柜台,并知道文件夹的数量将是一个解决scheme。 但我正在寻找一个更通用和更短的解决scheme… 我希望有人会有一个想法。 感谢您的关注, 朱利安 编辑: 我得到这个解决scheme,做我想做的,真的是graphics化的: #!/bin/bash n_item=$(find /* -maxdepth 0 | wc -l) i=0 for file in /* do sleep 1 #process file i=$((i+1)) echo $((100 * i / n_item)) | dialog –gauge "Processing $n_item folders, the current […]