1. 程式人生 > >windows 下生成的shell指令碼在linux下執行

windows 下生成的shell指令碼在linux下執行

由於部分命令不支援win系統環境,為了折衷,將部分程式碼在win系統下執行生成資料檔案以及shell指令碼,然後將其上傳到ubuntu10.04上執行指令碼處理。

         但是當將shell指令碼上傳到ubuntu後,執行起來就出現了錯誤,不能得到正確的中間資料檔案,生成的檔名稱後面都帶‘?’這樣一個符號。

         網上查閱後說這種原因是說明檔案沒有正常結束。。。 之後又查閱了部分部落格後,博主說這是CR/LF問題,就是在win系統中回車=CR換行=LF而在linux系統下回車換行都是=LF,所以win系統下檔案中每行都會多一個CR。驗證後的解決方案:

                在linux系統中使用vim開啟文後,在命令模式下輸入:set ff=unix

                然後儲存檔案,之後通過sh執行就OK了。

                之後試了下在.vimrc中新增 set ff=unix設定,之後在修改shell檔案的時候不再輸入這個命令,儲存後執行失敗。

                很多情況下win系統下生成的shell檔案到linux下是直接執行的,總不能每次都使用vim進入,設定後儲存退出吧! 如果有好的解決方式請留言,我也會繼續關注這個。

相關推薦

windows編寫shell指令碼放到linux執行問題

在windwos下用記事本編寫了個shell指令碼,拿到cygwin下執行沒問題,但是拿到linux下執行就出問題,顯示: :bad interpreter:no such file or directory 出現問題的原因就是“行終束符”,unix/linux使用 換行符;而dos/windows使用 回

Linux系統編寫shell指令碼傳入引數列印系統當前執行緒數到指定檔案

  最近在做效能測試,要檢視系統執行過程中執行緒數,很簡單輸入命令:netstat -anp |grep java |wc -l,可以查詢。但是如何在執行過程定時列印系統執行緒數且將結果輸出到指定檔案呢?也很簡單我們直接寫一個shell指令碼執行下就可以了。以

linux使用shell指令碼開啟多個terminal並在其中執行程式的方法

gnome-terminal(是一種模擬終端器,一說是ubuntu的terminal就叫gnome-terminal)命令用於開啟一個新的終端,直接在命令列 $ gnome-terminal 就可以開啟一個新的終端,有一些常用引數: 開啟後自動最大化 $ gnome-terminal --maxim

Linux使用shell指令碼自動執行指令碼檔案

一、定時複製檔案   a、在/usr/local/wfjb_web_back目錄下建立 tomcatBack.sh檔案   檔案內容: ? 1 2 #將tomcat中的應用wfjb_web 複製到 /usr/local/wfjb_web_bac

linux使用shell指令碼獲取終端寬度

獲取終端大小時候的學習 學習日期:2018/11/3 問題來源: 在寫shell指令碼時想輸出一行佔滿整個終端螢幕寬度的 橫槓 發現for迴圈會導致執行緩慢 解決方法: 使用yes 命令 sed '50q' 顯示50行 tr -d '\n' 刪除 \n 多次重複輸入相同字元可用yes yes "

Windows編寫的shell指令碼,在linux上無法執行

  前兩天由於要查一個數據庫的binlog日誌,經常用命令寫比較麻煩,想著寫一個簡單的指令碼,自動去刷一下資料庫的binlog日誌,就直接在windows上面寫了,然後拷貝到linux中去執行,其實很簡單的指令碼,具體如下: #!/bin/bash #flush mysql logs every da

linuxshell指令碼

Linux下的shell指令碼 Shell是一種指令碼語言,那麼,就必須有直譯器來執行這些指令碼,常見的指令碼直譯器有: bash:是Linux標準預設的shell。bash由Brian Fox和Chet Ramey共同完成,是BourneAgain Shel

linux shell 指令碼基礎與變數

一、shell 指令碼基礎知識         在電腦科學中,Shell俗稱殼(用來區別於核),是指“為使用者提供操作介面”的軟體(命令解析器)。它類似於DOS下的command.com和後來的cmd.exe。它接收使用者命令

Linux系統shell指令碼病毒感染其它linux指令碼程式

1.前言 這篇文章算是通過學習網上其它幾篇關於shell指令碼病毒文章後自己寫的學習心得,通過寫這篇文章讓自己能夠加深理解一下相關知識。但是其實下面用到的shell指令碼病毒的現實意義不大,但是對於理解病毒傳播的機制有一定的作用,僅作為參考而已。 2.指

實用指令碼----LinuxJdk和Tomcat自動安裝shell指令碼總結

一、JDK 自動安裝指令碼 jdk自動安裝bash shell指令碼,截止今天(2014/10/15)親測可用: sudo su #切換到root許可權 mkdir /usr/local/java cd /usr/local/java #download jdk 1.7.67 wget --no-ch

linuxshell指令碼--------轉

先說明以下內容來自: http://c.biancheng.net/cpp/shell/ ,C語言中文網,請大家支援原作,點選連結檢視。 我寫下來只是作為筆記,如果侵權,請留言,立馬刪除。 Shell是一種指令碼語言,那麼,就必須有直譯器來執行這些指令碼,常見的指令碼直譯

二十八、linuxshell指令碼(基本)

先說明以下內容來自: http://c.biancheng.net/cpp/shell/ ,C語言中文網,請大家支援原作,點選連結檢視。 我寫下來只是作為筆記,如果侵權,請留言,立馬刪除。 Shell是一種指令碼語言,那麼,就必須有直譯器來執行這些指令碼,常見的指令碼直譯器有:

Linux使用shell指令碼自動監控重啟tomcat

自己親自重新寫了一份shell指令碼,實現自動監控重啟tomcat。 系統環境:CentOS 6.7 x86_64 jdk版本:1.7.0_80 tomcat版本:7.0.70 # ------

linuxshell指令碼編寫

        下面我參考網上寫的較好的文章,加上自己的一點理解修改。僅供看家參考。         Shell是一種具備特殊功能的程式,它是結語使用者和UNIX/Linux作業系統核心程式(kernel)之間的一個介面。是為了遮蔽核心的複雜性,也為了保護核心以免使用者誤

Linuxshell指令碼for迴圈新增使用者

#!/bin/bash for name in $(more users.list) do if [ -n "$name" ];thenuseradd -m $name echoecho $name"123" | passwd --stdin "$name" echoech

idea編寫shell指令碼執行

1.前提是安裝了git,目的是能夠在windows下執行shell指令碼 2.在idea的plugins中找到外掛bashsupport並安裝,然後重啟idea 3.然後新建一個shell檔案:shell.sh 4.右鍵執行,會報錯,因為沒有找到執行shell

linux 系統安裝shell指令碼安裝JDK

1.先將jdk放在安裝目錄下,建立一個新的資料夾 ,放在java下面(usr/java)  1) 假如你沒有jdk      wget命令下載的檔案會在當前目錄下,所以如果在下載前最好先 cd 到想把JDK安裝的位置,如果沒有,     可以先建立相應目錄 

Linux通過Shell指令碼快速進入指定目錄

現在有一個現實的場景: 每一次開啟Linux,都是在 目錄下; 我最近想練習網路的程式碼,所以建立了一個目錄,路徑為: 可以看到,這個路徑很長,如果沒一次都通過cd /home/admin/linex/internet/practice,那太麻煩了!

Linux Shell基礎 Shell指令碼格式及執行方式

概述 在 Linux 的指令碼中,只要是基於 Bash語法寫的Shell指令碼第一行必須是"#!/bin/bash",用來宣告此檔案是一個指令碼。 執行方式 Shell 指令碼的執行主要有以下兩種方法: 賦予執行許可權,直接執行 這種方法是最常用的 Shell 指令碼執行方法,也最為直接簡單。就是賦

將眾多檔案均分到不同目錄shell指令碼

假設將某個目錄下的所有檔案,轉移拷貝到三個不同的目錄下。可用小指令碼來實現 #!/bin/bash count=0 source_dir='/var/log/' all_files=$(find $source_dir | grep 'web*.log') # 將所有的web.*.lo