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