Zer*_*cus 4 shell string variable
我有一个 FreeBSD 9.3 RELEASE 服务器,我正在尝试使用sh. 我正在尝试获取传递给 shell 脚本中的函数的变量的长度,如下所示:
#!/bin/sh
myfunc() {
varlength=${#1}
echo $varlength
}
test="aaaaa aaaaa"
myfunc $test
Run Code Online (Sandbox Code Playgroud)
上面的脚本应该返回 11,这是测试变量的长度,但是 ${#1} 似乎不起作用。我也尝试了许多其他方法来实现这一目标,但我无法弄清楚。
varlength=$(expr ${#1}) does not work
varlength=$(${#1}) does not work
varlength=$(expr \( "X$1" : ".*" \) - 1) does not work
varlength=$({#1}) does not work
Run Code Online (Sandbox Code Playgroud)
我所做的许多其他尝试都失败了。
因为$test包含空格,当你说
myfunc $test # without quotes
Run Code Online (Sandbox Code Playgroud)
您的函数接收 > 1 个参数。myfunc 在这里接收 2 个参数,aaaaa并且 aaaaa.
你要这个:
myfunc "$test" # with quotes
Run Code Online (Sandbox Code Playgroud)
经验法则:除非您确切知道何时以及为什么不引用,否则请始终引用您的引用"$variables"。
| 归档时间: |
|
| 查看次数: |
1479 次 |
| 最近记录: |