var1 = 'abc'
var2 = 'bc'
echo "Print result: $[[$var1 =~ $var2]]"
此 echo 命令不起作用。如何正确打印逻辑表达式
$var1 =~ $var2
的输出?
我想检查 var2 是否是 var1 的子字符串。所以预期的输出将是“打印结果:1”。
这就是你所期待的吗:
#!/bin/bash
var1='abc'
var2='bc'
echo "Print result: $([[ $var1 =~ $var2 ]] && echo 1 || echo 0)"
# Test whether var2 is a substring of var1
[[ $var1 == *$var2* ]]
# $? here is 0 if the condition is true and 1 if it is false.
# Set `result` to 1 if it is, and to 0 if it isn't
((result = 1 - $?))
这解决了OP指定的问题。不过,我想指出 发现他的真/假建模方式相当不寻常。多数情况 在这种情况下,true 将由 0 建模,false 将由 1 建模。