我正在使用bash运行应用程序,就像这样
digitSquared(n) {
% compute the occurrences of each digit
numberOfDigits = [0 0 0 0 0 0 0 0 0]
for m from 9 to 1 {
numberOfDigits[m] = n / m*m;
n = n % m*m;
if (n==0)
exit loop;
}
% assemble the final output
output = 0
powerOfTen = 0
for m from 9 to 1 {
for i from 0 to numberOfDigits[m] {
output = output + m*10^powerOfTen
powerOfTen = powerOfTen + 1
}
}
}
其中./app_name var1 var2 $var3
为var3
,其中--a b, --c d
和b
不包含空格。
现在我想将参数d
添加到--e f
,但$var3
包含空格。问题在于我试图避免改变这一行。
f
如果我这样离开,./app_name var1 var2 $var3
将app_name
的两个部分理解为两个不同的参数,因此无法解析。
我可以以某种方式更改f
,以便它不会将var3
拆分为两个不同的参数吗?我试过把引号放在里面,逃避空间,但它没有帮助。
答案 0 :(得分:6)
您可以通过使var3
成为数组来实现这一目标,例如:
var3=(--a b --c d --e "f1 f2")
./app_name var1 var2 "${var3[@]}"
这种方式f1 f2
将被视为一个参数。