Linux下執行.sh腳本錯誤:bin/sh^M: bad interpreter: No such file or directory
原因是.sh腳本在windows系統下用記事本文件編寫的。不同系統的編碼格式引起的。
轉行文件的編碼格式:
1、確保用戶對文件有讀寫及執行權限
oracle@linux-106:~/RMAN/bin> chmod a+x test.sh
2、然后修改文件格式
(1)使用vi工具
oracle@linux-106:~/RMAN/bin> vi test.sh
(2)利用如下命令查看文件格式
:set ff 或 :set fileformat
可以看到如下信息
fileformat=dos 或 fileformat=unix
(3) 利用如下命令修改文件格式
:set ff=unix 或 :set fileformat=unix
:wq (存盤退出)
3、最后再執行
oracle@linux-106:~/RMAN/bin> ./test.sh
Linux下執行.sh腳本錯誤:command not found
command not found這個問題一般都是像我這樣的新手才會犯的,所以剛學linux的童鞋們遇到這個問題可以看看我的解釋,可能會給你幫助。
其實這個問題可能是很多原因引起的,今天我碰到原因很值得關注,一般我們在寫java代碼的時候定義變量都喜歡這樣寫” String test = “ ”; ”。今天我寫了一個shell腳本,在腳本里定義了一個變量,(“host = “””),結果執行的時候出現了這個command not found。我是冥思苦想啊,怎么想也想不出為什么,后來我終於發現問題的所在了就是一個空格在作怪,其實在定義shell腳本的變量時在變量名和等號之間是不允許有空格的,而我寫的是test和=之間有空格,所以系統默認為,test是一個命令,所以系統找不到這個命令。切記切記,小問題有時候也會讓你停滯不前的。