下面的代碼是簡單的版本,但也說明了問題。awk在bash中不起作用
版本不工作:
df | awk -f <(cat - <<-'EOD'
{
if(
$1 == "tmpfs") {
print $0;
}
}
EOD
)
版本確實工作:
df | awk -f <(cat - <<-'EOD'
{
if($1 == "tmpfs") {
print $0;
}
}
EOD
)
不同的是我如何放置條件與如果,在同一行(工程)或不同的行(不工作)。 生產版本有四個長條件,所以我必須將它們放在不同的行上,以使代碼更具可讀性。任何人都進入了這個?
如果您不使用流程替換,這種行爲會有所不同嗎? – kojiro
您是否考慮嘗試一個awk腳本,而不使用來自df的管道和進程替換以及UUOC的here文件?所有這些都是混淆這個問題 - 只是一個簡單的awk腳本和一個BEGIN部分會捕獲並突出顯示你的問題。 –
當if-conditon跨越多行時,第一個版本仍不起作用。 – schemacs