我得到了一個使用兩個命令行參數的腳本。Bash腳本錯誤地處理命令行參數
./metagwastoolkit.run.sh metagwastoolkit.model1.conf metagwastoolkit.files.model1.list
後來在劇本我這樣做:
echo "cat meta.results.out | parseTable.pl --col VARIANTID,P_SQRTN,P_FIXED,P_RANDOM | awk ' $2 == 0 || $3 == 0 || $4 == 0 { print $1, $2, $3, $4 } ' > meta.results.needs_p_fixing.out" > meta.p_corrector.sh
,這是不生產我想要的東西,它產生:
cat meta.results.out | parseTable.pl --col VARIANTID,P_SQRTN,P_FIXED,P_RANDOM | awk ' metagwastoolkit.files.model1.list == 0 || == 0 || == 0 { print metagwastoolkit.model1.conf,metagwastoolkit.files.model1.list,, }' > meta.results.needs_p_fixing.out
所以把我的配置文件作爲$ 1和我的files.list作爲$ 2 ...這顯然不是w我想要的帽子......如果字段2,3或4等於0,我期望它能夠從管道打印第1列到第4列。
我該如何更改此...?
最佳,
桑德
究竟什麼是它不這樣做的權利?如果它是一個變量覆蓋/替換問題,我懷疑你的'source $ {1}'可能會用當前源文件中的值覆蓋當前腳本中的變量名稱,但我並不關注你如何爭論「$ 1」和「$ 2」不包含你想要的東西? –
當我讀到它時,你的'awk'** $ 2 == 0 || $ 3 == 0 || $ 4 == 0 {print $ 1,$ 2,$ 3,$ 4 **}''似乎沒有做你認爲的事。仔細檢查'awk'語法。 –
我不明白這個問題。您從不在腳本的任何地方使用'CONFIGURATIONFILE'或'GWASFILE'。 – Barmar