国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Bourne Shell及shell編程 1
版權(quán)信息
文章出處黃嘴企鵝論壇 javalee轉(zhuǎn)貼
文檔制作拒絕正版
作者聲明
本文內(nèi)容為大連理工大學(xué)LINUX選修課講義歡迎大家轉(zhuǎn)載但禁止使用本材料進(jìn)行
任何商業(yè)性或贏利性活動(dòng)轉(zhuǎn)載時(shí)請(qǐng)保留本版權(quán)聲明
作者何斌武hbwork@dlut.edu.cn,大連理工大學(xué)網(wǎng)絡(luò)中心April 1999.
URL: ftp://ftp.dlut.edu.cn/pub/PEOPLE/albin/

源碼:
------------------------------------------------------------------------------
Bourne Shell
 
介紹Bourne Shell 基礎(chǔ)及其他很多有用的特性shell編程及組織
 
主要內(nèi)容
.shell基礎(chǔ) 基本介紹環(huán)境選項(xiàng)特殊字符
.shell變量 用戶定義變量環(huán)境變量位置變量(shell 參數(shù))
.shell script編程
 條件測試循環(huán)及重復(fù)控制
.shell定制
 
1.shell基礎(chǔ)知識(shí)
 作者Stephen Bourne 在Bell實(shí)驗(yàn)室開發(fā)
 建議man sh 查看相關(guān)UNIX上的改進(jìn)或特性
 
(1)shell提示符及其環(huán)境
 /etc/passwd文件
 提示符$
 /etc/profile $HOME/.profile
(2)shell執(zhí)行選項(xiàng)
 -n 測試shell script語法結(jié)構(gòu)只讀取shell script但不執(zhí)行
 -x 進(jìn)入跟蹤方式顯示所執(zhí)行的每一條命令用于調(diào)度
 -a Tag all variables for export
 -c "string" 從strings中讀取命令
 -e 非交互方式
 -f 關(guān)閉shell文件名產(chǎn)生功能

 -h locate and remember functions as defind
 -i 交互方式
 -k 從環(huán)境變量中讀取命令的參數(shù)
 -r 限制方式
 -s 從標(biāo)準(zhǔn)輸入讀取命令
 -t 執(zhí)行命令后退出(shell exits)
 -u 在替換中如使用未定義變量為錯(cuò)誤
 -v verbose,顯示shell輸入行
 
 這些選項(xiàng)可以聯(lián)合使用但有些顯然相互沖突如-e和-i.
 
(3)受限制shell(Restircted Shell)
 sh -r 或 /bin/rsh
 
 不能執(zhí)行如下操作cd, 更改PATH,指定全路徑名輸出重定向因此
可以提供一個(gè)較
 好的控制和安全機(jī)制通常rsh用于應(yīng)用型用戶及撥號(hào)用戶這些用戶
通常是看不到提
 示符的通常受限制用戶的主目錄是不可寫的
 
 不足如果用戶可以調(diào)用sh,則rsh的限制將不在起作用事實(shí)上如果
用戶在vi及more
 程序中調(diào)用shell,而這時(shí)rsh的限制將不再起作用
 
(4)用set改變 shell選項(xiàng)
 用戶可以在$提示符下用set命令來設(shè)置或取消shell的選項(xiàng)使用-設(shè)置
選項(xiàng)+取消相應(yīng)
 選項(xiàng)大多數(shù)UNIX系統(tǒng)允許a,e,f,h,k,n,u,v和x的開關(guān)設(shè)置/取消
 
 set -xv
 啟動(dòng)跟蹤方式;顯示所有的命令及替換同樣顯示輸入
 set -tu
 關(guān)閉在替換時(shí)對(duì)未定義變量的檢查
 
 使用echo $-顯示所有已設(shè)置的shell選項(xiàng)
 
 
(5)用戶啟動(dòng)文件 .profile
 PATH=$PATH:/usr/loacl/bin; export PATH
 
(6)shell環(huán)境變量
 CDPATH 用于cd命令的查找路徑
 HOME /etc/passwd文件中列出的用戶主目錄
 IFS Internal Field Separator,默認(rèn)為空格tab及換行符

 MAIL /var/mail/$USERNAME mail等程序使用
 PATH
 PS1PS2 默認(rèn)提示符($)及換行提示符(> )
 TERM 終端類型常用的有vt100,ansi,vt200,xterm等
 
 示例$PS1="test:";export PS1
 test: PS1="\$";export PS1
 $echo $MAIL
 /var/mail/username
(7)保留字符及其含義
 $ shell變量名的開始如$var
 | 管道將標(biāo)準(zhǔn)輸出轉(zhuǎn)到下一個(gè)命令的標(biāo)準(zhǔn)輸入
 # 注釋開始
 & 在后臺(tái)執(zhí)行一個(gè)進(jìn)程
 匹配一個(gè)字符
 * 匹配0到多個(gè)字符(與DOS不同可在文件名中間使用并且含.)
 $- 使用set及執(zhí)行時(shí)傳遞給shell的標(biāo)志位
 $! 最后一個(gè)子進(jìn)程的進(jìn)程號(hào)
 $# 傳遞給shell script的參數(shù)個(gè)數(shù)
 $* 傳遞給shell script的參數(shù)
 $@ 所有參數(shù)個(gè)別的用雙引號(hào)括起來
 $? 上一個(gè)命令的返回代碼
 $0 當(dāng)前shell的名字
 $n (n:1-) 位置參數(shù)
 $$ 進(jìn)程標(biāo)識(shí)號(hào)(Process Identifier Number, PID)
 >file 輸出重定向
 <file 輸入重定向
 `command` 命令替換如 filename=`basename /usr/local/bin/tcsh`
 >>fiile 輸出重定向append
 
 轉(zhuǎn)義符及單引號(hào)
 $echo "$HOME $PATH"
 /home/hbwork /opt/kde/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:
 $echo '$HOME $PATH'
 $HOME $PATH
 $echo \$HOME $PATH
 $HOME /opt/kde/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/hbw
ork/bin
 
 其他
 $dir=ls

 $$dir
 $alias dir ls
 $dir
 
 ls > filelist
 ls >> filelist
 wc -l < filelist
 wc -l filelist
 sleep 5; echo 5 seconds reaches; ls -l
 ps ax |egrep inetd
 find / -name core -exec rm {} \; &
 filename=`date "+%Y%m%d"`.log
 
2. shell變量
 
 變量代表某些值的符號(hào)如$HOME,cd命令查找$HOME,在計(jì)算機(jī)語言
中可以使用變量可以
 進(jìn)行多種運(yùn)算和控制
 
 Bourne Shell有如下四種變量
 .用戶自定義變量
 .位置變量即 shell script之參數(shù)
 .預(yù)定義變量特殊變量
 .環(huán)境變量(參考shell定制部分)
 (1)用戶自定義變量數(shù)據(jù)的存儲(chǔ)
 $ COUNT=1
 $ NAME="He Binwu"
 
 技巧因?yàn)榇蟛糠諹NIX命令使用小寫字符因此在shell編程中通常
使用全大寫變量
 當(dāng)然這并不是強(qiáng)制性的但使用大寫字符可以在編程中方便地識(shí)別
變量
 
 變量的調(diào)用在變量前加$
 $ echo $HOME
 /home/hbwork
 $ WEEK=Satur
 $ echo Today is $WEEKday
 Today is
 $echo Today is ${WEEK}day
 Today is Saturday
 
 Shell變量賦值從右從左進(jìn)行(Linux Shell/bash從左向右賦值!)
 $ X=$Y Y=y
 $ echo $X

 y
 $ Z=z Y=$Z
 $ echo $Y
 
 $
 
 使用unset命令刪除變量的賦值
 $ Z=hello
 $ echo $Z
 hello
 $ unset Z
 $ echo $Z
 
 $
 
 有條件的命令替換
 在Bourne Shell中可以使變量替換在特定條件下執(zhí)行即有條件
的環(huán)境變量替換
 這種變量替換總是用大括號(hào)括起來的
 
 .設(shè)置變量的默認(rèn)值
 在變量未賦值之前其值為空Bourne Shell允許對(duì)變量設(shè)置
默認(rèn)值其格式如
 ${variable:-defaultvalue}
 例
 $ echo Hello $UNAME
 Hello
 $ echo Hello ${UNAME:-there}
 Hello there
 $ echo $UNAME #變量值并未發(fā)生變化
 
 $ UNAME=hbwork
 $ echo Hello ${UNAME:-there}
 Hello hbwork
 $
 .另一種情況改變變量的值格式如下
 ${variable:=value}
 
 例
 $ echo Hello $UNAME
 Hello
 $ echo Hello ${UNAME:=there}
 Hello there

 $ echo $UNAME #變量值并未發(fā)生變化
 there
 $
 .變量替換中使用命令替換
 $USERDIR=${$MYDIR:-`pwd`}
 
 .在變量已賦值時(shí)進(jìn)行替換 ${variable:+value}
 .帶有錯(cuò)誤檢查的有條件變量替換
 ${variable:?value}
 例
 $ UNAME=
 $ echo ${UNAME:?"UNAME has not been set"}
 UNAME: UNAME has not been set
 $ echo ${UNAME:?}
 UNAME: parameter null or not set
 
 (2)位置變量(Shell參數(shù))
 在shell script中位置參數(shù)可用$1..$9表示$0表示內(nèi)容通常為當(dāng)前執(zhí)行
程序的文件名
 .防止變量值被替換 readonly variable
 .使用export命令輸出變量使得變量對(duì)子shell可用當(dāng)shell執(zhí)行一下
程序時(shí)shell
 將為其設(shè)置一個(gè)新的環(huán)境讓其執(zhí)行這稱之了subshell. 在Bourne Shell中變量通常
 被認(rèn)為是本地變量也就是說在對(duì)其賦值之外的shell環(huán)境之外是不認(rèn)識(shí)
此變量的使
 用export對(duì)subshell可用
 
 例對(duì)變量PS1的export操作shell的提示符將發(fā)生變化
 $ PS1=`hostname`$
 peony$sh
 $ echo $PS1
 $ <-輸出結(jié)果
 $ exit
 peony$export PS1
 peony$sh
 peony$ echo $PS1
 peony$ <-輸出結(jié)果
 peony$
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
java調(diào)用shell,并得到shell的輸出
shell計(jì)算行數(shù)
shell
bash shell for循環(huán)1到100
shell if 語句
android 博客
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服