亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Linux Shell > 正文

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

2020-07-27 19:19:28
字體:
來源:轉載
供稿:網友

第一章略過,下邊從第二章開始,大家懂得。
ps:這里發生了一件非常當我蛋疼的事情,非常!已經碼文章碼到第四章了,悲劇的按錯瀏覽器按鈕刷新掉,怎么也找不回來之前寫的東西了。想死!算了,復習一邊吧。以下全文均屬自己總結書寫,有錯誤的地方也未必是書中錯誤(當然也有可能是書中錯誤,但是我都會親自操作滴),可能是我寫錯,請大牛指正。

第二章入門

因為第二遍寫,就簡單快速的寫吧,盡量寫清楚。大家都知道的終端命令cd啊 chmod啊 who啊之類的組合在一起加上一些控制語句,變量什么的就成shell編程了,給出一個簡單例子:

復制代碼 代碼如下:

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

上邊就是nusers文件就是一個完整的shell腳本了,功能是查詢多少用戶登錄系統。cat >nusers 重定向到nusers文件輸入數據流, #! 這句 ,#號之后都是注釋,但是#!是會被解釋器讀取的,因為這句告訴了系統應該使用什么解釋器,這里就是 /bin/sh 。^D是按ctrl+d 結束輸入,chmod增加可執行權限,最后就是運行自己寫的腳本。這樣就是一個完整的編寫到運行使用的過程了。你入門了木有?(額~如果木有的話,那換個文章再看看吧)

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

這里學習兩個命令,不好意思你想錯了,不是who 和 wc,而是從最基本的輸出hello,world開始嘛,所以先學echo和printf,前者十分簡單,會輸出所有參數,如:echo hello,world 。會c語言的朋友可以開心了,因為你不用再學習printf了,機會完全一樣,比如:printf "hello,%s/n",world ,這樣就會輸出hello,world然后換行(不會有不會c的童鞋吧?)。

另外再說一下之前出現的 > | < (不是表情 - -! (這個是)),這是基本的I/O重定向了,用過windows里cmd命令并且知道的也可以跳過了。 > 輸出重定向 。 <輸入重定向 。 | 管道,會把符號前的輸出信息當作符號后的輸入信息。另外還有>> << ,與單個的區別就是單個的會覆蓋原本存在的文件,沒有就創建。雙個的不會覆蓋,只在已有的文件后邊增添。

為了練習這個重定向,學習一個tr命令,主要用于轉換刪除濃縮字符。
語法:tr [options] source-char-list replace-char-list
選項:-c 取source反義,即tr要轉換的字符未列在source里,通常-d -s配合使用
-d 自標準輸入刪除source-char-list里所列的字符,而非轉換。
-s 濃縮重復的字符。
簡易配合重定向練習練習??纯丛趺礉饪s的,怎么替換的。

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

復制代碼 代碼如下:

printf "Enter new password:" #提示輸入
stty -echo #關閉自動打印輸入字符功能
read pass < /dev/tty #讀取密碼
printf :Enter again:" #再次提示輸入
read pass2 < /dev/tty #再次讀取
stty echo #打開自動打印輸入字符功能

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

現在已經能夠寫自己的shell腳本,也能夠像系統內建命令一樣調用了,但是還缺點什么,對,就是傳參數,給自己的腳本程序傳遞參數,使有更豐富的功能實現。

腳本里參數獲取很簡單,第一個參數就是$1,第二個$2,但是超過9的都用大括號把數字括起來,如${10}。下邊寫個完整的腳本程序:

復制代碼 代碼如下:

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

前提是前邊你也該過環境變量PATH。(不知道怎么改請往前找)

我們已經能夠寫一些腳本的,但是難免會出錯,不能達到預期,我們需要像c++那樣debug,可以直接在命令行里執行sh -x finduser 來打開執行跟蹤功能。
也可以在腳本里用set -x命令將執行跟蹤的功能打開,然后再用set +x來關閉該功能。

個人原創,轉載請注明:三江小渡

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产91精品在线观看| 日韩欧美国产黄色| 久久久久免费视频| 欧美日韩激情美女| 欧美视频一区二区三区…| 亚洲精品国产拍免费91在线| 亚洲人成在线免费观看| 亚洲午夜精品久久久久久性色| 亚洲经典中文字幕| 91欧美激情另类亚洲| 国产精品劲爆视频| 国精产品一区一区三区有限在线| 成人免费在线视频网站| 亚洲成人a级网| 欧美福利视频在线| 精品调教chinesegay| 久久亚洲综合国产精品99麻豆精品福利| 亚洲欧洲激情在线| 成人免费看黄网站| 一本一本久久a久久精品牛牛影视| 人妖精品videosex性欧美| 日韩精品中文字幕在线播放| 欧美www视频在线观看| 亚洲欧美国产日韩中文字幕| 日韩电影大全免费观看2023年上| 麻豆乱码国产一区二区三区| 国产精品高潮呻吟久久av无限| 久久久精品999| 欧美片一区二区三区| 亚洲国产精品久久91精品| 黑人精品xxx一区一二区| 午夜精品一区二区三区在线视频| 国产日本欧美在线观看| 欧美日韩一二三四五区| xvideos亚洲人网站| 久久久精品视频成人| 欧美日韩在线一区| 亚洲aaa激情| 欧美午夜精品伦理| 国产精品xxxxx| 亚洲国产美女精品久久久久∴| 国产日韩欧美在线观看| 国产成人自拍视频在线观看| 欧美精品久久久久久久| 久久夜色精品国产欧美乱| 狠狠久久五月精品中文字幕| 日韩欧中文字幕| 久久久久北条麻妃免费看| 欧美日韩一区二区免费在线观看| 国产精品成av人在线视午夜片| 国产精品丝袜白浆摸在线| 国语自产偷拍精品视频偷| 欧美wwwwww| 国产欧美一区二区三区四区| 国产精品久久久| 国产在线播放不卡| 97人人模人人爽人人喊中文字| 大伊人狠狠躁夜夜躁av一区| 欧美午夜激情在线| 精品无人区太爽高潮在线播放| 91手机视频在线观看| 日韩在线中文视频| 中文字幕亚洲情99在线| 国产一区二区三区四区福利| 午夜精品久久久99热福利| 欧美乱大交做爰xxxⅹ性3| 亚洲第一精品福利| 九九热这里只有在线精品视| 亚洲免费人成在线视频观看| 国产精品久久久av| yellow中文字幕久久| 久久综合久久88| 欧美激情网站在线观看| 综合136福利视频在线| 日本欧美一级片| 亚洲高清在线观看| 亚洲视频国产视频| 欧美激情一区二区三区高清视频| 亚洲视频专区在线| 久久精品国产欧美亚洲人人爽| 国产精品日日做人人爱| xxx欧美精品| 97碰在线观看| 91产国在线观看动作片喷水| 日韩有码在线电影| 中文字幕日韩在线视频| 91精品国产自产在线| 成人中文字幕+乱码+中文字幕| 成人免费视频网| 亚洲免费视频观看| 午夜精品美女自拍福到在线| 日韩欧美中文第一页| 91精品视频网站| 色777狠狠综合秋免鲁丝| 538国产精品视频一区二区| 川上优av一区二区线观看| 日韩美女写真福利在线观看| 国产成人极品视频| 日韩在线免费观看视频| 色系列之999| 亚洲美女中文字幕| 中文一区二区视频| 中文字幕亚洲情99在线| 日本高清不卡的在线| 一道本无吗dⅴd在线播放一区| 国产精品美女主播在线观看纯欲| 欧美夜福利tv在线| 亚洲网在线观看| 欧美老肥婆性猛交视频| 日韩电影在线观看永久视频免费网站| 啊v视频在线一区二区三区| 91精品久久久久久久久久久| 亚洲国产婷婷香蕉久久久久久| 欧美亚洲在线观看| 久久香蕉频线观| 96精品久久久久中文字幕| 欧美日韩在线视频首页| 亚洲男人天堂网| 裸体女人亚洲精品一区| 欧美日韩国产中文字幕| 亚洲毛片在线观看.| 国产乱人伦真实精品视频| 日韩电影在线观看永久视频免费网站| 国产精品爽爽爽爽爽爽在线观看| 亚洲无线码在线一区观看| 国产精品日韩av| 国产91免费看片| 欧美激情伊人电影| 国产一区二区在线免费| 欧美一区第一页| 欧美日韩免费一区| 国产免费一区二区三区在线能观看| 日韩在线观看免费av| 精品久久久av| 国内精品伊人久久| 亚洲国产精品va| 日韩视频―中文字幕| 亚洲自拍欧美另类| 色妞欧美日韩在线| 国产精品久久久久久久久久东京| 国产精品777| 日本不卡视频在线播放| 国产精品小说在线| 欧美日韩激情美女| 亚洲另类xxxx| 中国人与牲禽动交精品| 色午夜这里只有精品| 久久手机免费视频| www.亚洲男人天堂| 在线视频一区二区| 精品国内自产拍在线观看| 91久久久在线| 中文字幕欧美国内| 亚洲xxx大片| 国产精品久久久久久久av电影| 成人羞羞国产免费| 欧美日韩性生活视频| 亚洲精品suv精品一区二区| 丁香五六月婷婷久久激情| 日韩av男人的天堂| 国产mv免费观看入口亚洲| 国产精品一区二区性色av| 欧美黄色免费网站| 午夜精品一区二区三区在线视|