在bash脚本ubuntu中回显逻辑表达式的输出

问题描述 投票:0回答:2
var1 = 'abc'
var2 = 'bc'

echo "Print result: $[[$var1 =~ $var2]]"

此 echo 命令不起作用。如何正确打印逻辑表达式

$var1 =~ $var2
的输出?

我想检查 var2 是否是 var1 的子字符串。所以预期的输出将是“打印结果:1”。

bash echo
2个回答
0
投票

这就是你所期待的吗:

#!/bin/bash

var1='abc'
var2='bc'

echo "Print result: $([[ $var1 =~ $var2 ]] && echo 1 || echo 0)"

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 建模。

© www.soinside.com 2019 - 2024. All rights reserved.