我声明了一个临时文件
TEMPFILE="$(mktemp)"
然后我有一个awk语句用输出填充它... 下一步,我有另一个AWK语句取出特定字段放入一个数组......这是'挣扎'
DATES = ($(awk -F'/' '{print $2}' '${TEMPFILE}'))
我也正在使用CUT解析成一个单独的数组(不确定它是否正在工作)
IPS = ($(cut -f2 $(TEMPFILE)))
我收到了错误:
Script12.sh:第36行:意外令牌附近的语法错误`('
Script12.sh:第36行:`DATES =($(awk -F'/''{print $ 2}' '$ {TEMPFILE}'))'*
答案 0 :(得分:3)
不要在BASH中使用空格进行变量赋值。 =
符号
答案 1 :(得分:3)
shell对空间非常敏感。赋值的shell语法是
var1=[word1] ...
其中[]表示可选部分,并且......重复。
注意:=
符号周围没有空格。
然后,单引号内没有参数扩展(用其值替换$var
)。使用双引号:
DATES=($(awk -F/ '{print $2}' "${TEMPFILE}"))
答案 2 :(得分:2)
你不能在shell中的赋值周围添加空格,并且在awk命令行中使用时需要在shell变量周围更改单引号和双引号,即"$TEMPFILE"
而不是'${TEMPFILE}'
然后不尝试在剪切命令行上执行该变量(考虑$(TEMPFILE)
的含义)。