test.sh: line 3: $‘\r‘: command not found 或者 vim去掉^M字元
這兩種現象其實對應同一種問題:在windows下編輯的檔案放到linux上執行時會出現這個問題。
例如,有一個test.sh檔案,通過vim直接開啟時看到的是這樣的:
發現並沒有什麼問題。其實應該通過vim -b test.sh開啟,這樣看到的就是本來面目了。
vim -b test.sh
所以
方法一、把^M刪掉就可以了。按i進入編輯模式,刪除即可。
如果^M太多,可以使用查詢替換命令,vim開啟檔案然後
:%s/^M//g
注意這個^M不是看到的^M,而是要ctrl+V,ctrl+M敲出來。
方法二、修改檔案的格式:set ff=unix
擴充套件知識:
在DOS/Windows 的文字檔案在每一行末尾有一個 CR(回車)和 LF(換行),而 UNIX 文字只有一個換行,即win每行結尾為\r\n,而linux只有一個\n
如果win下的文件上傳到linux,每行的結尾就會出現一個^M,(^M是ctrl+v,ctrl+m)
所以要麼去除這個\r要麼修改檔案格式。
相關文章
- vim介面去掉^M符號符號
- bug solved | zsh: command not found: mongo (Mac M1/M2 )GoMac
- 解決shell指令碼錯誤$’r’ command not found指令碼
- shell指令碼執行錯誤 $‘\r‘:command not found指令碼
- pip: command not found
- mac mysql: command not foundMacMySql
- express: command not found.Express
- Mac -bash: mysql: command not foundMacMySql
- -bash :gradlew command not foundGradle
- 解決 command not found: expressExpress
- bash: hadoop: command not foundHadoop
- AIX下執行shell報錯^M: not found 或 vi 檔案發現存在很多^M字元AI字元
- 去掉windows下的^MWindows
- Linux:-bash: tree: command not foundLinux
- Linux:-bash: unzip: command not foundLinux
- aix_ssh scp command not foundAI
- sudo: apt-get: command not foundapt-get
- centos 7 -bash: mysql: command not foundCentOSMySql
- vim字元編碼字元
- sqlplus: command not found解決SQL
- 【Linux】git note -v command not foundLinuxGit
- vim替換所有字元字元
- bash: lspci: command not found解決方法
- 【linux報錯】-bash: xhost: command not foundLinux
- zsh: command not found: bee bee工具安裝
- "mkimage" command not found - U-Boot images will not be builtbootUI
- bash: ssh-copy-id: command not found...
- ASMCMD - ASM command line utility .ASM
- 去掉每行最後n個字元字元
- linux去掉文字中的\rLinux
- change ^M to new line
- Newline required at end of file but not foundUI
- Java拼接字串時,去掉最後一個多餘的逗號,或者Java刪除某個字元Java字串字元
- 解決bash: mysql: command not found的問題MySql
- Mac終端出現 brew command not found 解決Mac
- python virtualenv報錯-bash: virtualenv: command not foundPython
- zabbix_get :command not found 解決辦法
- Azure Command Line (一)入門