在一行中获取rx:之后的值

时间:2019-02-19 16:06:39

标签: bash

我有一行:

LINE="$(sed '5q;d' ttyAMA)"
echo "${LINE}"
# LINE CONTENT: 
# 4: uart:PL011 rev3 mmio:0xC006D000 irq:26 tx:0 rx:0
# Get the Rx field

在我的终端中,当我这样做时:

sed -e 's#.*rx:\(\)#\1#' <<< "4: uart:PL011 rev3 mmio:0xC006D000 irq:26 tx:0 rx:0"

它正在工作,我在rx:string之后得到值,即0

但是当我将其放在脚本中时,使用:

RX=`sed -e 's#.*rx:\(\)#\1#' <<< "4: uart:PL011 rev3 mmio:0xC006D000 irq:26 tx:0 rx:0"`
echo "${RX}"

我得到:

 ./getRx.sh: Syntax error: redirection unexpected

我的代码怎么了?

1 个答案:

答案 0 :(得分:3)

在脚本顶部添加#!/bin/bash#!/usr/bin/env bash shebang行。三重<<<重定向是Bash语法,因此您需要确保脚本在Bash中运行,而不是在其他Shell中运行。