這可能是一個簡單的問題,但我對bash腳本很陌生,並且在這方面花了相當多的時間,沒有運氣;我希望我能在這裏得到答案。使用bash腳本將單個文件從文件傳遞到python腳本
我想寫一個bash腳本,讀取文本文件中的各行,並將它們作爲python腳本的參數傳遞。我有一個文件列表(我保存在一個單獨的文本文件中,全部在單獨的行中),我需要在我的python腳本中用作參數,並且我想使用bash腳本將它們全部發送出去。當然,我可以採取繁瑣的方式,將其餘的python命令複製/粘貼到腳本中的各行中,但我認爲有一種方法可以通過「讀取行」命令來執行此操作。我已經試過各種命令的組合,但這裏是最近的一次,我有:
#!/bin/bash
# Command Output Test
cat infile.txt << EOF
while read line
do
VALUE = $line
python fits_edit_head.py $line $line NEW_PARA 5
echo VALUE+"huh"
done
EOF
當我這樣做,我得到的返回是從輸入文件中的各條線。我有額外的價值,看看它是否會打印,但它不。很明顯,我不明白的「讀取線」命令很簡單,但在弄了很長時間之後,我不知道它是什麼。我承認我仍然是這個bash腳本遊戲的新手,並不是那麼好。任何幫助肯定會被讚賞。
第一個版本放在你身上就像魅力一樣工作;我也嘗試了最後一個,並且遇到了一些問題,但是在瞭解了更多關於數組的知識之後,我可以自己去解決這個問題。出於好奇,你認爲更多的東西給我帶來了些什麼:VALUE和$ line之間的空格還是第一行缺少分號?還是它是一個聯合問題? – user3827679
真正的問題是,你做了'cat infile.txt << EOF'並將命令放在這裏的文檔塊中。 'VALUE = $ line'只是一個語法錯誤問題。 – konsolebox
另外,在刪除打印每行的值的部分之後,仍然會在處理每個文件之前打印每個文件的名稱。不是一個大問題,但我仍然想知道如何阻止它做到這一點。這是否與「while read line」命令有關?有沒有辦法將每行數據輸入到腳本中,而不將它們打印到屏幕上? – user3827679