婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > shell腳本學(xué)習(xí)指南[一](Arnold Robbins & Nelson H.F. Beebe著)

shell腳本學(xué)習(xí)指南[一](Arnold Robbins & Nelson H.F. Beebe著)

熱門(mén)標(biāo)簽:打電話機(jī)器人接我是他的秘書(shū) 地圖標(biāo)注員都是年輕人 江蘇云電銷(xiāo)機(jī)器人公司 河南信譽(yù)好的不封卡電話外呼系統(tǒng) 華鋒e路航港口地圖標(biāo)注 揭陽(yáng)智能電話機(jī)器人推薦 客服外呼系統(tǒng)怎么樣 如果做線上地圖標(biāo)注 百度地圖標(biāo)注錯(cuò)了有責(zé)任嗎

第一章略過(guò),下邊從第二章開(kāi)始,大家懂得。
ps:這里發(fā)生了一件非常當(dāng)我蛋疼的事情,非常!已經(jīng)碼文章碼到第四章了,悲劇的按錯(cuò)瀏覽器按鈕刷新掉,怎么也找不回來(lái)之前寫(xiě)的東西了。想死!算了,復(fù)習(xí)一邊吧。以下全文均屬自己總結(jié)書(shū)寫(xiě),有錯(cuò)誤的地方也未必是書(shū)中錯(cuò)誤(當(dāng)然也有可能是書(shū)中錯(cuò)誤,但是我都會(huì)親自操作滴),可能是我寫(xiě)錯(cuò),請(qǐng)大牛指正。

第二章入門(mén)

因?yàn)榈诙閷?xiě),就簡(jiǎn)單快速的寫(xiě)吧,盡量寫(xiě)清楚。大家都知道的終端命令cd啊 chmod啊 who啊之類的組合在一起加上一些控制語(yǔ)句,變量什么的就成shell編程了,給出一個(gè)簡(jiǎn)單例子:

復(fù)制代碼 代碼如下:

$ cat > nusers
#! /bin/sh
who | wc -l
^D
$ chmod +x nusers
$ ./nusers

上邊就是nusers文件就是一個(gè)完整的shell腳本了,功能是查詢多少用戶登錄系統(tǒng)。cat >nusers 重定向到nusers文件輸入數(shù)據(jù)流, #! 這句 ,#號(hào)之后都是注釋,但是#!是會(huì)被解釋器讀取的,因?yàn)檫@句告訴了系統(tǒng)應(yīng)該使用什么解釋器,這里就是 /bin/sh 。^D是按ctrl+d 結(jié)束輸入,chmod增加可執(zhí)行權(quán)限,最后就是運(yùn)行自己寫(xiě)的腳本。這樣就是一個(gè)完整的編寫(xiě)到運(yùn)行使用的過(guò)程了。你入門(mén)了木有?(額~如果木有的話,那換個(gè)文章再看看吧)

現(xiàn)在我們來(lái)改進(jìn)一下,為了讓我們執(zhí)行自己的程序更像系統(tǒng)內(nèi)建命令那樣,我們可以修改系統(tǒng)環(huán)境變量PATH,修改過(guò)windows的童鞋都知道,linux也一樣,是為了讓系統(tǒng)搜索命令的時(shí)候有個(gè)搜索路徑依據(jù)。你可以輸出一下看看先:echo $PATH .結(jié)果就是輸出一大串以:為分隔符的字符串,我們給他重新賦值,假設(shè)我們編寫(xiě)的shell代碼存在用戶目錄下的myshell文件夾內(nèi),那么我們就這樣賦值: PATH=$PATH:$HOME/myshell 這樣我們就可以直接運(yùn)行nusers命令獲得用戶登錄數(shù)目的信息了。

這里學(xué)習(xí)兩個(gè)命令,不好意思你想錯(cuò)了,不是who 和 wc,而是從最基本的輸出hello,world開(kāi)始嘛,所以先學(xué)echo和printf,前者十分簡(jiǎn)單,會(huì)輸出所有參數(shù),如:echo hello,world 。會(huì)c語(yǔ)言的朋友可以開(kāi)心了,因?yàn)槟悴挥迷賹W(xué)習(xí)printf了,機(jī)會(huì)完全一樣,比如:printf "hello,%s\n",world ,這樣就會(huì)輸出hello,world然后換行(不會(huì)有不會(huì)c的童鞋吧?)。

另外再說(shuō)一下之前出現(xiàn)的 > | (不是表情 - -! (這個(gè)是)),這是基本的I/O重定向了,用過(guò)windows里cmd命令并且知道的也可以跳過(guò)了。 > 輸出重定向 。 輸入重定向 。 | 管道,會(huì)把符號(hào)前的輸出信息當(dāng)作符號(hào)后的輸入信息。另外還有>> ,與單個(gè)的區(qū)別就是單個(gè)的會(huì)覆蓋原本存在的文件,沒(méi)有就創(chuàng)建。雙個(gè)的不會(huì)覆蓋,只在已有的文件后邊增添。

為了練習(xí)這個(gè)重定向,學(xué)習(xí)一個(gè)tr命令,主要用于轉(zhuǎn)換刪除濃縮字符。
語(yǔ)法:tr [options] source-char-list replace-char-list
選項(xiàng):-c 取source反義,即tr要轉(zhuǎn)換的字符未列在source里,通常-d -s配合使用
-d 自標(biāo)準(zhǔn)輸入刪除source-char-list里所列的字符,而非轉(zhuǎn)換。
-s 濃縮重復(fù)的字符。
簡(jiǎn)易配合重定向練習(xí)練習(xí)。看看怎么濃縮的,怎么替換的。

這里介紹兩個(gè)特殊文件:/dev/null 和 /dev/tty,前者傳送到此文件的數(shù)據(jù)都會(huì)被系統(tǒng)丟棄,類似垃圾桶。從中讀取數(shù)據(jù)則只能讀到null。另一個(gè)/dev/tty,當(dāng)程序打開(kāi)此文件時(shí),linux會(huì)自動(dòng)將它重定向到一個(gè)終端(控制臺(tái)或串行口或一個(gè)網(wǎng)絡(luò)與窗口登錄的偽終端等)再與程序結(jié)合。這在程序必須讀取人工輸入時(shí)特別有用,也可以用來(lái)產(chǎn)生錯(cuò)誤信息。例:

復(fù)制代碼 代碼如下:

printf "Enter new password:" #提示輸入
stty -echo #關(guān)閉自動(dòng)打印輸入字符功能
read pass /dev/tty #讀取密碼
printf :Enter again:" #再次提示輸入
read pass2 /dev/tty #再次讀取
stty echo #打開(kāi)自動(dòng)打印輸入字符功能

stty(set tty)命令用來(lái)控制終端(或窗口)的各種設(shè)置。

現(xiàn)在已經(jīng)能夠?qū)懽约旱膕hell腳本,也能夠像系統(tǒng)內(nèi)建命令一樣調(diào)用了,但是還缺點(diǎn)什么,對(duì),就是傳參數(shù),給自己的腳本程序傳遞參數(shù),使有更豐富的功能實(shí)現(xiàn)。

腳本里參數(shù)獲取很簡(jiǎn)單,第一個(gè)參數(shù)就是$1,第二個(gè)$2,但是超過(guò)9的都用大括號(hào)把數(shù)字括起來(lái),如${10}。下邊寫(xiě)個(gè)完整的腳本程序:

復(fù)制代碼 代碼如下:

$ cat > finduser
#! /bin/sh
#finduser ---查看指定用戶是否登錄
who | grep $1
^D
$ chmod +x finduser
$ finduser root

前提是前邊你也該過(guò)環(huán)境變量PATH。(不知道怎么改請(qǐng)往前找)

我們已經(jīng)能夠?qū)懸恍┠_本的,但是難免會(huì)出錯(cuò),不能達(dá)到預(yù)期,我們需要像c++那樣debug,可以直接在命令行里執(zhí)行sh -x finduser 來(lái)打開(kāi)執(zhí)行跟蹤功能。
也可以在腳本里用set -x命令將執(zhí)行跟蹤的功能打開(kāi),然后再用set +x來(lái)關(guān)閉該功能。

個(gè)人原創(chuàng),轉(zhuǎn)載請(qǐng)注明:三江小渡

您可能感興趣的文章:
  • shell腳本學(xué)習(xí)指南[二](Arnold Robbins & Nelson H.F. Beebe著)
  • shell腳本學(xué)習(xí)指南[六](Arnold Robbins & Nelson H.F. Beebe著)
  • shell腳本學(xué)習(xí)指南[五](Arnold Robbins & Nelson H.F. Beebe著)
  • shell腳本學(xué)習(xí)指南[四](Arnold Robbins & Nelson H.F. Beebe著)
  • shell腳本學(xué)習(xí)指南[三](Arnold Robbins & Nelson H.F. Beebe著)

標(biāo)簽:赤峰 邵陽(yáng) 婁底 許昌 巴彥淖爾 淘寶邀評(píng) 馬鞍山 金昌

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《shell腳本學(xué)習(xí)指南[一](Arnold Robbins & Nelson H.F. Beebe著)》,本文關(guān)鍵詞  shell,腳本,學(xué)習(xí)指南,一,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《shell腳本學(xué)習(xí)指南[一](Arnold Robbins & Nelson H.F. Beebe著)》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于shell腳本學(xué)習(xí)指南[一](Arnold Robbins & Nelson H.F. Beebe著)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 邻水| 大安市| 三明市| 保德县| 湖南省| 玉龙| 丹东市| 阜城县| 苍梧县| 玛多县| 河间市| 昌都县| 芦山县| 本溪| 曲水县| 张掖市| 泸溪县| 漾濞| 永泰县| 九龙坡区| 翁牛特旗| 鹤山市| 江门市| 抚州市| 安阳市| 新昌县| 承德市| 麟游县| 册亨县| 巴林右旗| 武邑县| 南昌市| 河北区| 大邑县| 长岭县| 新沂市| 大余县| 汪清县| 石台县| 博客| 永年县|