JavaScript 有一个功能:
'world'.startsWith('w')
true
我怎样才能用shell测试这个?我有这个代码:
if [ world = w ]
then
echo true
else
echo false
fi
但它失败了,因为它正在测试平等。我更喜欢使用内置的,但此页面中的任何实用程序都是可以接受的:
http://pubs.opengroup.org/onlinepubs/9699919799/idx/utilities.html
如果您的 shell 是 bash: 在双括号内,则 == 运算符的右侧是一个模式,除非完全引用:
或者更简洁:
[[ world == w* ]] && echo true || echo false
[*]如果您没有专门针对 bash:使用 case 语句进行模式匹配
[*] 但你需要小心
A && B || C
表单,因为如果A 失败或B 失败,C
将被执行。如果 A 失败,表单只会执行 C。if A; then B; else C; fi
然后:
w
从源字符串开始的子字符串或者:
w
从源字符串中删除