我有一个包含许多子目录(名为 0001、0002...)的目录,我想在每个目录中启动一个 bash 脚本。
for i in {0001..0021}; do cd $i; ../script1.sh; cd ..; done
上面它忽略了 000 并将范围作为 1 到 21。我如何让它考虑到 0?
我有一个包含许多子目录(名为 0001、0002...)的目录,我想在每个目录中启动一个 bash 脚本。
for i in {0001..0021}; do cd $i; ../script1.sh; cd ..; done
上面它忽略了 000 并将范围作为 1 到 21。我如何让它考虑到 0?
for i in {1..21}; do
i=`printf '%04d' $i`
# do stuff with $i (now in the format 0001)
done
我想启动一个在每个目录中运行的 bash 脚本。
然后你可以简单地使用*
for i in *; do cd $i; ../script1.sh; cd ..; done
这样做的另一种方式(我的方式和最快的)
for i in 000{1..21}; do cd ${i:(-4)}; ../script1.sh; cd ..; done
您可以((...))
在 BASH 中使用:
for ((i=0; i<=21; i++)); do j=$(printf "%04d" $i); cd $j; ../script1.sh; cd ..; done