0

我正面临awk指挥问题。实际上我使用了一个变量DELETION_COMMAND,该变量的值是rm -rf. 之后我试图执行下面的行然后它给出了一个错误。而如果我将rm用作相同变量的值DELETION_COMMAND。然后它工作正常。

awk '{print "'${DELETION_COMMAND}'"" ""'${COMPLETE_PATH}'""/"$1"/*"}' ${DB_FEED_FILE} > ${TEMP_FEED_FILE}

错误 :

awk: {print "rm
awk:        ^ unterminated string

请建议。
我哪里错了?

4

2 回答 2

1

突出显示已经表明您的错误。您将 awk 表达式放在单引号之间,然后在表达式中使用单引号。awk 认为你的表达是这样的:

awk '{print "'

要解决此问题,请使用反斜杠转义单引号。

于 2013-01-30T08:12:43.780 回答
0

使用该-v标志将 shell vars 传递给awk,并且不要忘记引用:

awk -v com="${DELETION_COMMAND}" -v path="${COMPLETE_PATH}" '{ print com, path, "/", $1, "/" }' "${DB_FEED_FILE}" > "${TEMP_FEED_FILE}"
于 2013-01-30T08:15:29.827 回答