sed -e "s/${MyToken}/${arg}/g" file
'arg'的价值在第9次论证之前工作正常。在第10次论证之后,它失败了
答案 0 :(得分:0)
通常,当您需要超过10个参数时,脚本的逻辑就会有缺陷。
限制通常基于您正在使用的shell bash
可以使用更多,但如果您使用旧sh
,通常会锁定到第9个参数。
如果你想迭代多个参数我可以推荐简单:
for arg in "$@"
或使用shift
来" shift"某种while
||中的位置参数for
循环。
答案 1 :(得分:0)
以下是一个例子:
#!/bin/ksh
echo There is $# parameters
while [ $# -ne 0 ]; do
echo $1
shift
done
输出:
Will:/home> ./script a b c d e f g h i j k l m n o p q r s t u v w x y z
There is 26 parameters
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
$#
计算传递给脚本的参数数量。
Shift
正在向左移动参数,因此在一个循环$1
变为b后依此类推。