【问题标题】:Getting "command not found" while using cut on bash variable [duplicate]在 bash 变量上使用 cut 时出现“找不到命令”[重复]
【发布时间】:2019-02-28 19:53:03
【问题描述】:

我在 bash 脚本中有两个变量

hostname="ab78ascsoadp003.abc.com"
Loc=`$hostname | cut -c3,4`

我收到一个错误ab78ascsoadp003.abc.com: command not found

我正在尝试使用cut command 以便$Loc 得到78

【问题讨论】:

  • $hostname 的内容不是命令,因此无法将其解析为管道的第一个令牌。
  • 你忘记了回声!

标签: bash cut


【解决方案1】:

虽然您可以使用cut 来实现此目的,但有时坚持使用 会很有用:

hostname="ab78ascsoadp003.abc.com"
Loc=${hostname:3:2}

${parameter:offset:length} 子字符串扩展。从 offset 指定的字符开始扩展到参数的最大长度字符。如果省略length,则扩展为以offset 指定的字符开始的参数子字符串。 lengthoffset 是算术表达式

来源:man bash

【讨论】:

    【解决方案2】:
    hostname="ab78ascsoadp003.abc.com"
    Loc=$(cut -c3,4 <<<"$hostname")
    

    【讨论】:

      【解决方案3】:

      您缺少echo

      Loc=`echo $hostname | cut -c3,4`
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-12-15
        • 1970-01-01
        • 2014-11-28
        • 2013-05-17
        • 1970-01-01
        • 2019-12-26
        相关资源
        最近更新 更多