2
在我的剧本我创建一个临时目录中使用此命令巴什 - 在Temp文件夹与文件工作
TMPDIR=$(mktemp -d)
后来当我想创建一个文件有我用(与$DATA
是我的源数据文件)
touch $TMPDIR/data
echo "$DATA" > $TMPDIR/data
命令。稍后,我使用awk通过以下语法更改数据:
awk '
{ a[i++]= ($0 * '$factor') }
END{
{ for (j=0;j < i;j++) print a[j] }
}
' ${TMPDIR}/data
然后我使用gnuplot来绘制它。但是gnuplot说有一些错误,所以我想用cat打印$TMPDIR/data
。但它说该文件不存在。我做错了什么?
谢谢
您是否在脚本中包含“cat”?从父shell调用它将不起作用,因为$ TMPDIR仅存在于运行脚本的子shell中。 – choroba
是的,当然 - 在脚本的awk之后 –
'awk'....'$ TMPDIR/data'将在'$ TMPDIR/data'上运行,并将输出发送到标准输出。所以'awk'的任何修改在'$ TMPDIR/data'中都不可用。那是你的意图吗?它似乎缺少一些东西。你可以在你创建'$ TMPDIR/data'的地方显示你的脚本中的所有行吗?你可以在脚本中执行'cat $ TMPDIR/data'?我假设'awk'产生一个错误,因为它找不到该文件,根据你所说的内容,但你没有说错误信息是什么。 – lurker