A. linux 執行sh文件,提示command not found
原因是linux 執行sh文件裡面缺少PATH=$PATH:/sbin,添加進即可。
1、首先需要打開電腦的桌面,如圖所示,滑鼠右鍵單擊選擇打開終端的選項。
B. linux shell 如何把txt文本中每一行提取出來賦值給一變數,再輸出這一變數
: No such file or directorybash
你的shell腳本有可能是在windows下編寫的,然後在轉移到linux執行的。
#vi filename
然後用命令
:set ff ---------查看時dos還是unix
若是dos字樣, 那麼你可以用set ff=unix把它強制為unix格式的, 然後存檔退出. 再運行一遍看。
建立腳本最好在linux下,使用touch filename.sh來創建,再用vi filename.sh來編寫腳本命令。
例如:
#touch dd.sh
#vi dd.sh
然後輸入下面的內容。
#!bin/bash
#文本txt每一行復制並輸出----注釋
cat 123.txt|while read var;do
echo $var
done
exit 0
保存後,使用
#bash dd.sh
或者
#chmod 777 ss.sh
#./dd.sh
就可以運行啦。
C. linux修改文件類型問題
1、這是dos格式與unix格式間的區別
2、ff=fileformat, 是設置文件格式為unix類型,即換行符為\n。
ff還可以設置為dos(換行符為\r\n) mac(換行為\r)
:set ff? 可以看到當前文件格式
:set ff=unix 設置成unix格式
:set ff=dos 設置成dos格式
3、詳細你可以看下:http://vimcdoc.sourceforge.net/doc/usr_23.html
D. Linux下編譯出現這個bash:./configure:No such file or directory 怎麼解決
1、開始以為是sh路徑問題,用which查看是正確的。
E. linux系統 bad interpreter:Permission denied問題解決
ls -l install.sh和/disk1/A/A.sh以及/disk1/A/B.sh
感覺不像install.sh的問題。
請問樓主,你的這些script有沒有在windows系統下編輯過。用dos2unix試試。
例如
請你使用dos2unix a.sh,然後再chmod 755 a.sh
然後運行,測試一下看看。其他的也這樣。
如果還不行,可以輸入bash -x,進入debug狀態,然後運行看看。錯在哪一行。
F. linux運行sh腳本出現/r
項目中要運行sh腳本。但是腳本的項目路徑文件夾運行的時候 會報錯,找不到文件夾。
發現執行的時候會默認在 sh腳本中添加/r 也就是回車鍵。
找了半天才想起來是文件格式不對。
在vim 下面執行 :set ff 查看當前文檔的格式 是gos
需要將sh腳本改成unix格式的才能運行。
完美!
G. linux執行.sh腳本,提示bad interpreter:文件過大,如何解決
分析:
這是不同系統編碼格式引起的:在windows系統中編輯的.sh文件可能有不可見字元,所以在Linux系統下執行會報以上異常信息。
解決:
1)在windows下轉換:
利用一些編輯器如UltraEdit或EditPlus等工具先將腳本編碼轉換,再放到Linux中執行。轉換方式如下(UltraEdit):File-->Conversions-->DOS->UNIX即可。
或者按Ctrl+H,將文本內容轉換為十六進制,然後其中的0D 0A(Dos下的回車)替換為0A(Unix下的回車),但是這種方式還是要注意修改後保存時文本的類型,比較推薦的是下面第二種方式。
2)也可在Linux中轉換:
首先要確保文件有可執行許可權
#sh>chmod a+x filename
然後修改文件格式
#sh>vi filename
利用如下命令查看文件格式
:set ff 或 :set fileformat
可以看到如下信息
fileformat=dos 或 fileformat=unix
利用如下命令修改文件格式
:set ff=unix 或 :set fileformat=unix
:wq (存檔退出)
最後再執行文件
#sh>./filename
H. Linuxfind命令搜索中文文件名字不顯示
此時一般原因就是你shell腳本在編寫時的系統跟你的執行腳本的系統不一致。
首先用vi命令打開文件。在vi命令模式中使用setff命令。修改文件format為unix。然後wq保存退出,重新執行腳本就正常了。
xshell是一種連接虛擬機的軟體,可以與虛擬機同步。linux操作系統是一款在伺服器上廣泛應用的操作系統,雖然起初並不適合普通大眾,而且使用起來沒有Windows操作系統方便。
I. linux中的set ff=unix是什麼意思,哪位大俠給說說
set ff=unix : 告訴 vi 編輯器,使用unix換行符
老式的電傳打字機使用兩個字元來代表換行。一個字元把滑動架移回首位 (稱為回車, <CR>),另一個字元把紙上移一行 (稱為換行, <LF>)。
當計算機問世以後,人們對換行的處理沒有達成一致意見。
UNIX 開發者決定用 <LF> 一個字元來表示行尾。
Apple 開發者規定了用 <CR> 。
開發 MS-DOS (Windows)開發者則決定沿用<CR><LF>。
這就是說,把一個文件從一種系統移到另一種系統,就有換行符的麻煩。如:用 vi 來嘗試編輯一個採用 MS-DOS 格式的文件,你將會發現每一行的末尾有個 ^M 字元。(^M 就是 <CR>)。
set ff=unix ,就是告訴 vi 編輯器,使用unix換行符
set ff=dos ,就是告訴 vi 編輯器,使用dos換行符