-
我想使用空格作为分隔符来拆分包含第一个字符的字符串。但以下代码似乎不起作用。如果我删除该-
字符,它就会正确拆分。这是脚本
#!/bin/bash
string="-e -/a/b/c/d"
arr=($string)
arrLen=${#arr[@]}
echo $arrLen
echo ${arr[0]} #prints empty
if [ $arrLen = 2 ] && [ ${arr[0]} = "-e" ]; then #this condition gets passed surprisingly
echo "Hi ${arr[1]}"
fi
输出
2
Hi -a/b/c/d
你的拆分工作正常。你的测试失败了。
只是为了把评论中已经回答的内容放到一个清晰的例子中 -
简短的回答;只需使用
printf
。更长的答案最好在这里探讨,或者也可以通过阅读手册页来
echo
了解。顺便说一下,
echo
不幸的是,它是少数几个不能用来--
禁用进一步参数的实用程序之一……因为您可能想要打印出一对破折号。您可以使用printf
。如果您只需要打印出这对破折号,您仍然可以。