日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

详谈为何不要使用Windows的notepad编写shell

發(fā)布時(shí)間:2024/4/14 windows 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 详谈为何不要使用Windows的notepad编写shell 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

初學(xué)shell的時(shí)候,總聽到群里的大牛說不要使用Windows自帶的notepad編寫shell。然而,一直不解其中的原因。接下來,咱們動手實(shí)踐一下,了解其中的來龍去脈。

在Windows下,打開notepad,敲打以下代碼:

#! /bin/bash echo "This is the first line \ of the script." echo "This is the second line \ of the script." 保存為test1。然后將這個(gè)文件復(fù)制到Linux下。打開這個(gè)文件,會看到文件的內(nèi)容與之前在Windows下編輯的文本文件并無區(qū)別。

在Linux下,使用vi編輯test2文件,加入同樣的內(nèi)容,然后保存。

接下來,分別運(yùn)行這兩個(gè)文件(注意:運(yùn)行前先賦予這兩個(gè)文件以可執(zhí)行權(quán)限)。對于test2,得到如下輸出:

$ ./test2 This is the first line of the script. This is the second line of the script. 對于test1,則得到這樣的輸出: $ ./test1 bash: ./test1: /bin/bash^M: bad interpreter: No such file or directory 也就是說,在Windows下用notepad編寫的shell運(yùn)行出錯(cuò)了。從報(bào)錯(cuò)信息可以看出,從header這一行就已經(jīng)出錯(cuò)了,header這一行本來是要告訴我們的內(nèi)核使用Bash這個(gè)命令解釋器,它的路徑位于/bin/bash。可是bash卻告訴我們無此文件。究其原因,是^M這個(gè)字符影響了header一行對于命令解釋器的正常識別。那^M這個(gè)字符又是什么呢?

不用的操作系統(tǒng)使用不同的字符來表示換行。Unix/Linux使用單個(gè)的換行(Line Feed,LF)符作為換行的標(biāo)記。Windows/DOS使用2個(gè)字符:回車(Carriage Return,CR)符和換行符(LF)。MacOS使用CR。^M即為我們在使用Windows的notepad產(chǎn)生的回車符。更多信息可參見維基百科上關(guān)于Newline的解釋:http://zh.wikipedia.org/wiki/%E6%8F%9B%E8%A1%8C

對于Linux Deepin甚至其他發(fā)行版本來說,一個(gè)比較通用的方法是使用tr工具來刪除多余的回車符,因?yàn)樗恍枰惭b額外的工具,且便于理解。

tr -d '\r' < test1 > tmp && mv tmp test2 使用這條命令刪除多余的回車符后,該腳本即可正常運(yùn)行。tr是translate或transliterate的縮寫。tr工具從其標(biāo)準(zhǔn)輸入(stdin)中轉(zhuǎn)換、縮減或刪除字符,并寫道標(biāo)準(zhǔn)輸出(stdout)。其基本句法為: tr [options] set1 [set2] 在這里,tr從文件test1中讀入,將其中的回車符(\r)刪除后輸出為文件tmp,然后又將文件tmp重命名為test2。對于tr的更多用法,可查看其man page。

轉(zhuǎn)載于:https://my.oschina.net/ckanner/blog/91887

總結(jié)

以上是生活随笔為你收集整理的详谈为何不要使用Windows的notepad编写shell的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。