我有一行:
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
我的代码怎么了?
答案 0 :(得分:3)
在脚本顶部添加#!/bin/bash
或#!/usr/bin/env bash
shebang行。三重<<<
重定向是Bash语法,因此您需要确保脚本在Bash中运行,而不是在其他Shell中运行。