函数内部sed命令中的bash语法错误,在命令行上运行正常

时间:2013-11-08 21:11:15

标签: bash sed

我有一个带有两个函数的bash脚本,一个是包含case命令的main函数,case命令将调用第二个函数并传递一个特定的参数。

在第二个函数中,我有一个在命令行上运行的命令,但是当作为bash脚本的一部分运行时,我收到以下错误:

: line 57: syntax error near unexpected token `('
: line 57: `           local DATE=`echo $URL|sed -r 's/.*____([0-9]{1,2})_([0-9]{1,2})_([0-9]{1,2}).*/20\3-\1-\2/;s/-([0-9]{1})-/-0\1-/;s/-([0-9]{1})$/-0\1/'`'

功能是,

dlshow ()
{
    local URL=$1
    echo "URL: "$URL
    local DATE=`echo $URL|sed -r 's/.*____([0-9]{1,2})_([0-9]{1,2})_([0-9]{1,2}).*/20\3-\1-\2/;s/-([0-9]{1})-/-0\1-/;s/-([0-9]{1})$/-0\1/'`

我无法弄清楚为什么作为bash命令我得到了错误。

1 个答案:

答案 0 :(得分:0)

试试这个:

echo $URL | sed -e '...' |  { read DATE ; ... ; }