【问题标题】:What is the syntax for comparing a substring of one string to a string variable in bash?将一个字符串的子字符串与bash中的字符串变量进行比较的语法是什么?
【发布时间】:2019-07-24 21:55:47
【问题描述】:

我试图将一个字符串变量的子字符串与整个变量进行比较,结果总是假的。

COMP='<'
if [[ '${SNIP:0:1}' = '$COMP' ]] ;then
  LENG=6
elif [[ '${SNIP:1:1}' = '$COMP' ]] ;then
  LENG=7
else
  LENG=8
fi
echo $SNIP
echo ${SNIP:0:1}
echo ${SNIP:1:1}
echo $COMP
echo $LENG

我也尝试过仅将子字符串与“

我希望输出是

3<a
<
<
7

但输出是

3<a
<
<
8

我不知道出了什么问题。请帮忙。谢谢。

【问题讨论】:

  • 在使用变量时尝试使用双引号 " 而不是单引号 '
  • 好哇是的,就是这样。非常感谢

标签: bash substring string-comparison


【解决方案1】:

只需使用双引号:

COMP='<'
if [[ "${SNIP:0:1}" = "$COMP" ]] ;then
  LENG=6
elif [[ "${SNIP:1:1}" = "$COMP" ]] ;then
  LENG=7
else
  LENG=8
fi
echo $SNIP
echo ${SNIP:0:1}
echo ${SNIP:1:1}
echo $COMP
echo $LENG

单引号不会插入任何内容,但双引号会。

https://stackoverflow.com/a/6697781/344480

【讨论】:

    猜你喜欢
    • 2017-10-25
    • 2018-03-17
    • 2020-09-03
    • 1970-01-01
    • 1970-01-01
    • 2012-08-31
    • 2014-09-03
    • 2017-02-20
    • 1970-01-01
    相关资源
    最近更新 更多