seq:缺少操作数尝试`seq --help'欲获得更多信息

时间:2014-09-18 17:57:31

标签: shell sh

#!/bin/sh
MACHINES_NUM=3
for i in $(seq $MACHINES_NUM)
do
   echo mkdir -p /something/$i
done
有人请帮忙.....

1 个答案:

答案 0 :(得分:1)

不要使用seq - 它不是POSIX标准化命令(或者像bash一样,具有单一规范实现的第三方工具),因此无法保证它会以任何特定的方式工作。如果你有可用的bash,它的语法为C风格:

#!/bin/bash
num_machines=3
for ((i=0; i<num_machines; i++)); do
   echo mkdir -p "/something/$i"
done

对于POSIX sh:

#!/bin/sh
num_machines=3
i=; while [ $(( ( i += 1 ) <= num_machines )) -ne 0 ]; do
   echo mkdir -p "/something/$i"
done

如果你想让你的计数从1而不是0开始,这些都是直接修改的:

#!/bin/bash
num_machines=3
for ((i=1; i<=num_machines; i++)); do
   echo mkdir -p "/something/$i"
done

#!/bin/sh
num_machines=3
i=1; while [ $(( i <= num_machines )) -ne 0 ]; do
   echo mkdir -p "/something/$(( i += 1 ))"
done
相关问题