Shell腳本報錯:-bash: ./switch.sh: /bin/bash^M: bad interpreter: No such file or directory


在學習shell中測試case參數命令代碼如下

#!/bin/bash
#switch測試
case $1 in
    start)
        echo 'start'
    ;;
    stop)
        echo 'stop'
    ;;
esac

在給當前shell腳本賦予了執行權限之后,執行報錯代碼如下

[root@localhost sh]# ./switch.sh stop
-bash: ./switch.sh: /bin/bash^M: bad interpreter: No such file or directory

主要原因是switch.sh是我在Windows下通過Sublime Text編輯后,在linux系統里執行的。.sh文件的格式為dos格式。而linux只能執行格式為unix格式的腳本。

我們可以通過vi編輯器來查看文件的format格式。步驟如下:

1:首先用vi命令打開當前的shell腳本文件

2:在vi命令模式中使用 :set ff 命令

 

3:解決方法有兩個

①直接當下輸入命令

:set ff=unix

②返回文件當下目錄執行命令

dos2unix switch.sh

如果當前系統沒有dos2unix命令,還需要去網上下載安裝包解壓,到此為止。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM