1. 程式人生 > >dos2unix(windows指令碼檔案放到unix下執行要注意)

dos2unix(windows指令碼檔案放到unix下執行要注意)

在windows下編寫的shell指令碼檔案,直接放到linux下執行,是不行的。

infiniDB的倒庫指令碼檔案load.sh,將tbl檔案匯入infiniDB,怎麼執行不成功,不建job。運來,是windows 的檔案不能放到linux下直接執行。

vi編輯器開啟檔案,發覺每一行的最後有淺藍色的字元'^M'。

DOS下的文字檔案是以\r\n作為斷行標誌的,表示成十六進位制就是0D 0A。而Unix下的文字檔案是以\n作為斷行標誌的,表示成十六進位制就是 0A。DOS格式的文字檔案在Linux底下,用較低版本的vi開啟時行尾會顯示^M。我的vi版本較高,看不到^M。

vim 下, 用

:%!xxd ——將當前文字轉換為16進位制格式。

可以看到,0d0a字樣。說明是windows檔案。

命令dos2unixunix2dos的使用非常簡單,格式為:
dos2unix filename

dos2unixunix2dosdos2unix"\r\n"轉化成"\n"unixtodos"\n"轉化成"\r\n"

1.如果一次轉換多個檔案,把這些檔名直接跟在dos2unix之後。(注:也可以加上-o引數,也可以不加,效果一樣)

  格式:dos2unix file1 file2 file3

  格式:dos2unix -o file1 file2 file3

2.如果想把轉換的結果儲存在別的檔案,而原始檔不變,則可以使用-n引數。

  格式:dos2unix -n oldfile newfile
3.如果要保持檔案時間戳不變,加上-k引數。所以上面幾條命令都是可以加上-k引數來保持檔案時間戳的。   格式:dos2unix -k file   格式:dos2unix -k file1 file2 file3
一個在Windows下面生成的指令碼檔案,當上傳到unix下後事無法直接執行,需要完成檔案格式的轉變才行.

相關推薦

dos2unix(windows指令碼檔案放到unix執行注意)

在windows下編寫的shell指令碼檔案,直接放到linux下執行,是不行的。 infiniDB的倒庫指令碼檔案load.sh,將tbl檔案匯入infiniDB,怎麼執行不成功,不建job。運來,是windows 的檔案不能放到linux下直接執行。 vi編輯器開啟檔案

windows編輯指令碼檔案在linux出現錯誤

問題: 使用./shell.sh 出現出現錯誤:“/bin/sh^M:bad interpreter” 使用sh shell.sh 生成的檔案會出現"a.txt^M"或者“a.txt?” 分析: 這裡這種情況的出現是因為,指令碼是在windows下編寫的,然後傳到

windows環境kettle使用及linux環境注意的問題

  kettle是基於Java開發的jdk是必須安裝的  kettle實現了資料流程拖拽實現的視覺化介面  kettle對linux和windows都支援  kettle主要是兩部分:job和transformation(轉換)      job主要實現執行時間和執行順序的配

Windows執行python指令碼報錯“ImportError: No Module named ...”的解決方法

之前遇到一個問題,在Pycharm或IPython之類的IDE上執行指令碼正常,但是直接執行或cmd命令列執行的時候報了模組未能找到的 誤——ImportError: No Module named ...。 這是啥情況? Python在啟動直譯器(Interpreter)的時候

獲取windows執行檔案簽名和證書資訊

獲取證書資訊驗證檔案數字簽名是否有效可以使用函式 WinVerifyTrust,可以用:取得檔案數字簽名證書資訊需要使用函式 CryptQueryObject,再用CertFindCertificateInStore獲取證書Cert也可以通過,WTHelperProvDataFromStateData WTH

Linux執行bash指令碼顯示“: /usr/bin/env: "bash\r": 沒有那個檔案或目錄

用 ./ 執行bash指令碼檔案出現 報錯資訊 /usr/bin/env: "bash\r": 沒有那個檔案或目錄 錯誤原因:這主要是因為bash後面多了\r這個字元的原因。在linux終端下,輸出\r會什麼都不顯示,只是把游標移到行首。於是終端雖然輸出了/usr/bin/env bash,

一個小坑: -bash: ./backup.sh: /bin/bash^M: bad interpreter: No such file or directory 由於shell指令碼檔案被我在Windows編輯過,出現上面錯誤的原因之一是指令碼檔案是DOS格式的, 即每一行的行尾以\r\n來標識

    由於shell指令碼檔案被我在Windows下編輯過,出現上面錯誤的原因之一是指令碼檔案是DOS格式的, 即每一行的行尾以\r\n來標識, 使用vim編輯器開啟指令碼, 執行::set ff? 可以看到DOS或UNIX的字樣. 使用se

windows執行.sh指令碼

現在開發專案遇到一個問題,mac系統和windows下開發,對於mac下的sh指令碼,想要在windows下也能正常執行,通過了解,安裝cygwin,Cygwin是一個在windows平臺上執行的類UNIX模擬環境 基本操作命令: ls #以預設方式顯示當前目錄檔案

Ubuntu16.04 雙擊執行執行指令碼檔案

1、安裝 dconf-editor sudo apt-get install dconf-editor 2、安裝完成後直接輸入dconf-editor開啟dconf-editor dconf-editor 3、org->gnome->natuilus-&g

windows環境執行.sh檔案

.sh是shell script格式的檔案,在Linux環境下是可以直接執行的,到檔案所在目錄下,執行 ./test.sh 如果是在Windows環境下,在CMD視窗是無法直接執行 ./test.sh 的,這時候可以通過 GIT 工具來執行,關於GIt的安裝配置參考:

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

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

解決Linux執行Python指令碼顯示“: 沒有那個檔案或目錄”的問題

我猜不少人都遇到過類似的問題: 在Windows下寫好了一個python指令碼,執行沒問題 但放到Linux系統下就必須在命令列前加上一個python直譯器才能執行 指令碼開頭的註釋行已經指明瞭直譯器的路徑,也用chmod給了執行許可權,但就是不能直接執行指令碼。 比如這個指令碼: #!/usr/bin/

Linux執行Python指令碼顯示“: 沒有那個檔案或目錄”問題

        後來一想,應該是編碼問題。Windows下,文字的換行是\r\n一同實現的,而Lnix/UNIX下則只用\n。對於: #!/usr/bin/env python\r\n 這樣一行文字,windows下的程式會認為#!/usr/bin/env python就是一行。而linux會認為#! /us

Windows PowerShell中無法將"python"項識別為cmdlet、函式、指令碼檔案或可執行程式的名稱

原因:PowerShell找不到python直譯器的路徑 解決辦法: 以管理員許可權開啟PowerShell,將python.exe所在的路徑加到系統環境變數Path中,命令如下: [Environment]::SetEnvironmentVariable("Path", "$env:P

如何在Windows開發Python:在cmd執行Python指令碼+如何使用Python Shell(command line模式和GUI模式)+如何使用Python IDE

本文目的 希望對於,如何在Windows下,寫Python程式碼,進行Python開發,執行Python指令碼的人,看了此文後,懂得了: 什麼是cmd下面去執行Python指令碼; 什麼是Python的互動式的shell; 什麼是Python的IDE。 前提知識 看此文之前

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

由於部分命令不支援win系統環境,為了折衷,將部分程式碼在win系統下執行生成資料檔案以及shell指令碼,然後將其上傳到ubuntu10.04上執行指令碼處理。          但是當將shell指令碼上傳到ubuntu後,執行起來就出現了錯誤,不能得到正確的中間資料檔

mac 執行指令碼檔案--親測可行

參考 點選開啟連結  ,後面為自己解釋。 mac終端下執行shell指令碼 1、寫好自己的 指令碼,比如aa.sh  2、開啟終端 執行,方法一: 輸入命令    ./aa.sh     , 方法二:直接把 aa.sh 拖入到終端裡面。 注意事項:

win7 64位作業系統git的安裝 顯示檔案版本和正在執行windows版本不一致

想要在自己機器上安裝git,對專案進行版本控制,可還是發生了很不和諧的一幕。費盡周折,上圖:一開始以為是下載過程中檔案出錯,然後下載了好多次,每次點選安裝和的時候,都會出現下面的錯誤提示:可是機器的作業系統版本就是win7 64位作業系統,下載的git版本也是for wind

Windows獲取Dump檔案以及程序執行緒呼叫棧的方法總結

【除錯死鎖】1、!syncblk,檢視哪些執行緒拿到了鎖2、~67e!clrstack 跳到某個拿到鎖的執行緒看它正在幹什麼操作,遲遲不肯釋放鎖3、!runaway 檢視這個佔有鎖的執行緒運行了多長時間。4、~*e!clrstack檢視所有執行緒的託管堆疊,看看哪些是正在等待鎖的,比如hang在System.

linuxpython指令碼檔案執行與編碼解析

一、 先將終端所在路徑切換到python指令碼檔案的目錄下 然後給指令碼檔案執行許可權,一般755就OK,如果完全是自己的私人電腦,也不做伺服器什麼的,給777的許可權問題也不大(具體許可權含義參考c