大家看看这几个shell脚本怎么改正,freebsd中的bourse shell,不是bash shell。为提高移植性该怎么做?

2025-04-05 05:25:59
推荐回答(2个)
回答1:

sh或ksh里不支持 for (( ... )) 这种循环(会报语法错误),为提高移植性,建议改为while循环。
for ... in ... 这个在sh里倒是可以用的,ksh里没试过。
其他没什么问题,都是基本语句。

回答2:

对应bourse shell如下
#!/bin/sh
set test1 test2 test3 test4
while [ $# -ne 0 ]
do
echo $1
shift
done

#!/bin/sh
a=1
while [ $a -le 3 ]
do
echo "Starting loop $a:"
b=1
while [ $b -le 3 ]
do
echo "Inside loop: $b"
b=`expr $b + 1`
done
a=`expr $a + 1`
done