2016-04-06 41 views
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。但它說該文件不存在。我做錯了什麼?

謝謝

+0

您是否在腳本中包含「cat」?從父shell調用它將不起作用,因爲$ TMPDIR僅存在於運行腳本的子shell中。 – choroba

+0

是的,當然 - 在腳本的awk之後 –

+3

'awk'....'$ TMPDIR/data'將在'$ TMPDIR/data'上運行,並將輸出發送到標準輸出。所以'awk'的任何修改在'$ TMPDIR/data'中都不可用。那是你的意圖嗎?它似乎缺少一些東西。你可以在你創建'$ TMPDIR/data'的地方顯示你的腳本中的所有行嗎?你可以在腳本中執行'cat $ TMPDIR/data'?我假設'awk'產生一個錯誤,因爲它找不到該文件,根據你所說的內容,但你沒有說錯誤信息是什麼。 – lurker

回答

0

我正在閱讀未回答的問題,發現這一個。稍後閱讀所有評論意識到這是評論中已經回答的問題之一。這裏的問題是用戶忘記了將awk命令的輸出重定向到一個文件。爲了避免他人閱讀這些評論並得出相同的結論,我發佈這個答案。這裏是一個問題答案的評論:

啞巴,因爲它似乎是,潛伏者是對的,我忘了 輸出AWK到我要感謝大家的 意見的文件 - Jesse_Pinkman

相關問題