[問題] bash 空白行導致 command not found

看板Linux作者 (方正)時間4年前 (2020/11/13 10:42), 4年前編輯推噓5(615)
留言12則, 10人參與, 4年前最新討論串1/1
目前 TEST.sh 的內容如下 #!/bin/bash WORKDIR=backup echo $WORKDIR echo "備份程序" echo "根目錄" 但是在執行 sh TEST.sh 後輸出的結果為 : command not found backup 備份程序 : command not found 根目錄 中間為了格式打上去的空行被當成無效指令 導致輸出 : command not found 想請問一下有沒有人遇過這種情況 以及這個要怎麼處理? -- 『老闆你好 我是國立的』 『老闆你好 我是私立的』 『腦~~~~~~~闆~~~~~~』 Amy! 有消息會跟你聯絡 有消息會跟你聯絡 給她個私人秘書職位 ◤ ◥ ◤◥ 國立 -○=○- -□=□- ● ● ◤ ◥ 私立 ) 尬不過 -? - )) 兩粒 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.125.62.244 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1605235346.A.2CC.html

11/13 10:49, 4年前 , 1F
先檢查是否有全形空白
11/13 10:49, 1F

11/13 15:01, 4年前 , 2F
windows換行?
11/13 15:01, 2F

11/14 00:23, 4年前 , 3F
應該是有不是空白的東西混進去
11/14 00:23, 3F

11/14 07:21, 4年前 , 4F
dos2unix
11/14 07:21, 4F

11/14 12:14, 4年前 , 5F
xxd TEST.sh 賠上來看看
11/14 12:14, 5F

11/14 13:36, 4年前 , 6F
Backup被當成指令了啦
11/14 13:36, 6F

11/15 00:22, 4年前 , 7F
11/15 00:22, 7F

11/15 02:18, 4年前 , 8F
你bash是不是連到dash
11/15 02:18, 8F

11/15 19:06, 4年前 , 9F
set -x 追追看?
11/15 19:06, 9F

11/15 19:07, 4年前 , 10F
然後在之前不管有沒有 dos 換行都先 dos2unix
11/15 19:07, 10F
問題已解決 目前查到的說法是 Windows 的換行是 \r\n Linux 的換行是 \n 解決的方法有~ 1.dos2unix 問題是這個主機上沒有安裝 dos2unix ~Orz 2.改用 vim 編輯 並設定 :set ff=unix ※ 編輯: sanbis (59.125.62.244 臺灣), 11/16/2020 09:18:41

11/16 19:23, 4年前 , 11F
sed應該也可以處理這個
11/16 19:23, 11F

11/17 12:27, 4年前 , 12F
sed 's/\r$//'
11/17 12:27, 12F
文章代碼(AID): #1VhVAIBC (Linux)
文章代碼(AID): #1VhVAIBC (Linux)