Linux 上Shell 指令碼執行的一個問題(^M)
為了更好更實時的檢視Linux系統的資源消耗,在網上找到了一個別人寫的Shell,參考 https://www.cnblogs.com/xianhaiyuan/p/6323599.html , 存成檔案後,通過FillZilla傳遞到Linux伺服器上,不了執行時候遇到報錯資訊如下:
網路上搜索了相關資料,主要參考 http://blog.csdn.net/xcl168/article/details/22095401 , 發現果然是由於Linux和Windows的換行符表示不同導致的。
嘗試了兩種方法:
1、yum install dos2unix -y 安裝dos2unix 工具,在 通過 dos2unix <filename> 來修復檔案,既可執行shell 指令碼了
2、或者通過vi下的替換方式處理這種情況 (ESC命令模式下),同樣工作正常:
:%s/^M//g 替換掉"^M", 注意: ^M由ctrl+v 和 ctrl+m 生成而不是直接輸入對應的字元。
相關推薦
Linux 上Shell 指令碼執行的一個問題(^M)
為了更好更實時的檢視Linux系統的資源消耗,在網上找到了一個別人寫的Shell,參考 https://www.cnblogs.com/xianhaiyuan/p/6323599.html , 存成檔案後,通過FillZilla傳遞到Linux伺服器上,不了執行時候遇到報錯
Linux 中 Shell 指令碼執行的三種方式
在 Linux 系統中,Shell 指令碼的執行方式通常有如下三種: 通過直譯器 bash 或 sh 執行 通過直譯器時的命令格式為: bash shell-script-name # 通過 bash 直譯器來執行 shell 指令碼。 或 sh sh
linux 下shell指令碼執行多個命令的方法
1.每個命令之間用;隔開 說明:各命令的執行給果,不會影響其它命令的執行。換句話說,各個命令都會執行, 但不保證每個命令都執行成功。 2.每個命令之間用&&隔開說明:若前面的命令執行成功,才會去執行後面的命令。這樣可以保證所有的命令執行完畢後,執行過程都是
Linux-用shell指令碼寫一個進度條
shell執行指令碼:建立一個.sh檔案,編輯檔案即可執行指令碼。Shell指令碼中用#表示註釋,相當於c語言的//註釋。但如果#位於第一行開頭,並且是則例外,它表示該指令碼使用後面指定的直譯器/bin/sh解釋執行。 程式碼: 執行結果: shell中prin
編寫shell指令碼在Linux上無法正常執行
用Windows版的notepad++編寫的指令碼怎麼都無法在Linux上執行,後來才發現是因為沒有轉換成Unix格式,所以Linux上對於空格跟回車識別不了, 解決: 在notepad++右下角window那個地方右鍵(也可以在頂部選單欄尋找),選擇Unix格式再傳到L
Linux上用Jenkins執行shell
目錄 安裝Jenkins Jdk安裝 安裝Jenkins 開啟防火牆 自定義指定埠9000啟動jenkins 瀏覽器登入 修改管理員密碼 建立一個執行shell的任務 構建剛建立的Jenkins任務 檢視執行結果
[轉載] Linux export變數的生命週期和shell的生命週期相同,即shell指令碼執行完畢後,相應的export變數便失效了
說說shell指令碼中的export 和 source,bash 小弟剛剛接觸linux,對linux上的很多東西都比較陌生,所以寫一寫部落格,當做自己工作的總結和技術的積累吧,也是鞭策自己不斷努力的去學習。 今天之所以起這個標題,把export,source ,bash這三個命令放在一起講
Shell指令碼執行hive語句 | hive以日期建立分割槽表 | linux schedule程式 | sed替換檔案字串 | shell判斷hdfs檔案目錄是否存在
#!/bin/bash source /etc/profile; ################################################## # Author: ouyangyewei # #
windows編寫sh指令碼在linux上不能執行
報錯:/bin/sh^M:bad interpreter: 編碼沒有被識別, vi *.sh 檢視檔案格式(顯示 fileformat=dos) Esc 輸入 :set fileformat 修改檔案格式(修改後 顯示 filefor
linux的shell指令碼中執行多個命令的方法
第一種是以分號(;)進行劃分:表示:各命令的執行的果,不會影響其它命令的執行。換句話說,各個命令都會執行,但不保證每個命令都執行成功。 第二種命令之間&&隔開 表示:若前面的命令執
Linux shell指令碼執行方式:source、sh、bash、./執行指令碼的區別
1、source命令用法: source FileName 作用:在當前bash環境下讀取並執行FileName中的命令。該filename檔案可以無"執行許可權" 注:該命令通常用命令“.”來替代。 如:source .bash_prof
Linux下shell指令碼定時執行
1.啟動crond服務 輸入命令:service crond restart Stopping crond: [ OK ] Starting crond:
linux和Windows檔案不相容(shell指令碼執行錯誤 $'\r': command not found)
背景 將linux通過samba服務對映到windows平臺,在win平臺下建立一個指令碼,然後切換到linux下執行,報錯$’\r’: command not found。 原因 win平臺下的換行是:回車符 + 換行符,也就是\r\n。unix下是換行符\n。linux下
Linux--shell指令碼執行方法總結
linux下新建一個print hello world的指令碼程式,如下所示: ~/boke---> vim hello.sh ~/boke---> cat hello.sh #!/b
什麼是Linux的Shell指令碼和怎麼執行指令碼?
一、什麼是Shell? shell是外殼的意思,就是作業系統的外殼。我們可以通過shell命令來操作和控制作業系統,比如Linux中的Shell命令就包括ls、cd、pwd等等。總結來說,Shell是一個命令直譯器,它通過接受使用者輸入的Shell命令來啟動
在Windows下生成的shell文件在上傳到Linux上發現無法執行
code header sed 循環 發現 win localhost 沒有 不一致 為了批量生成shell文件,我在Windows下用knime循環生成一批shell文件,在上傳到Linux上執行時發現報錯: [ft@localhost Stock]$ ./f_wdt_
linux的shell指令碼下判斷一個變數值或字串是否為整數
在實際的應用開發中,由於shell缺少許多函式庫,所以判斷字串是否為整數就不是一件容易的事兒,那麼這裡介紹一般的用於判斷一個字串是否為整數的方法。 原理: 一、利用expr做計算時變數或字串必須是整數的規則,把一個變數或字串和一個已知的整數(非0)相加,看命令返回的值是否
linux 通過shell指令碼在本地執行遠端機器命令
在本機上想通過shell指令碼執行遠端機器上的命令,其實很簡單,只要在ssh 的後面加上<< remotessh 【命令】 remotessh 就可以了,下面貼出簡單的例子 #!/bin/bash ssh [email protected]
linux shell 指令碼 判斷一個檔案是否 存在
/etc/init.d/rcS #!/bin/sh # Start all init scripts in /etc/init.d # executing them in numerical or
【轉】通過ionice和nice降低shell指令碼執行的優先順序
對於一些執行時會造成系統滿載的指令碼, 例如資料庫備份, 會影響當時其他服務的響應速度, 可以通過ionice和nice對其IO優先順序和CPU優先順序進行調整例如降低"/usr/local/bin/backup.sh"的IO優先順序, 讓其他程序順暢執行: /usr/bin/ionice -c2 -