docker 程式碼中的檔案路徑_windows下在docker中執行.sh檔案可能遇到的一個無法找到檔案/目錄的巨坑...
阿新 • • 發佈:2021-01-02
技術標籤:docker 程式碼中的檔案路徑
2020CCF-BDCI比賽進入決賽復現時,被強制要求使用docker,然後遇到了一個非常奇葩的問題。
其中指令碼run.sh中為
python lgb.py
(此處為空行)
指令碼run1.sh中為
python lgb.py
兩者差異僅為run.sh中多了一個回車。
推測問題原因在於,windows下的換行rn結束的, 而linux系統的換行為n。因此在windows下編輯的.sh檔案,換行時句尾為rn,而進入docker內後轉為linux,在識別命令換行時為n,於是之前windows中鍵入的python lgb.py變為python lgb.pyr
解決方法,考慮在linux命令列中可以通過空格來間隔,因此在每行回車之前鍵入一個空格,將實際的檔名與r隔開,就可以正常運行了,即將run.sh改為
python lgb.py
(此處為空行)
其實最開始是腳本里寫了cd xx及一堆python xx.py,全部顯示找不到路徑/檔案,一層一層排查才定位,太難了。