欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
Shell編程(/bin/sh和/bin/bash)

保留字符及其含義

shell變量

條件測試命令

表達式

流程控制

參考資料

 

查看ubuntu支持的Shell:

$ cat /etc/shells

查看當前shell:

$ echo $SHELL

 

以下是sh Shell腳本編程,也適用于bash,差異之處已說(shuō)明。

保留字符及其含義

$ shell變量名的開(kāi)始,如$var

| 管道,將標準輸出轉到下一個(gè)命令的標準輸入

# 注釋開(kāi)始

& 在后臺執行一個(gè)進(jìn)程

? 匹配一個(gè)字符

* 匹配0到多個(gè)字符(與DOS不同,可在文件名中間使用,并且含.)

$- 使用set及執行時(shí)傳遞給shell的標志位

$! 最后一個(gè)子進(jìn)程的進(jìn)程號

$# 傳遞給shell script的參數個(gè)數

$* 傳遞給shell script的參數

$@ 所有參數,個(gè)別的用雙引號括起來(lái)

$? 上一個(gè)命令的返回代碼

$0 當前shell的名字

$n (n:1-) 位置參數

$$ 進(jìn)程標識號(Process Identifier Number, PID)

>file 輸出重定向

`command` 命令替換,如 filename=`basename /usr/local/bin/tcsh`

>>fiile 輸出重定向,append

其他:

$$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

 

shell變量

Shell有如下四種變量:

.用戶(hù)自定義變量

.位置變量即 shell script之參數

.預定義變量(特殊變量)

.環(huán)境變量

(1)用戶(hù)自定義變量(數據的存儲)

$ COUNT=1
$ NAME
="He Binwu"
$ echo $NAME
$ echo ${NAME}

技巧:因為大部分UNIX命令使用小寫(xiě)字符,因此在shell編程中通常使用全大寫(xiě)變量,當然這并不是強制性的,但使用大寫(xiě)字符可以在編程中方便地識別變量。

變量的調用:在變量前加$。

使用unset命令刪除變量的賦值。

$ Z=hello
$ echo
$Zhello
$ unset Z
$ echo $Z
$

在變量未賦值之前其值為空。Bourne Shell允許對變量設置默認值(相當于C#中 ?? 表達式),其格式如下:

${variable:-defaultvalue}

例:

$ echo Hello $UNAME
Hello
$ echo Hello ${UNAME:
-there}
Hello there
$ echo $UNAME #變量值并未發(fā)生變化
there
$ UNAME
=hbwork
$ echo Hello ${UNAME:
-there}
Hello hbwork

另一種情況:改變變量的值,格式如下:

${variable:=value}

$ echo Hello $UNAME
Hello
$ echo Hello ${UNAME:
=there}
Hello there
$ echo $UNAME #變量值并未發(fā)生變化
there

變量替換中使用命令替換:

echo ${MYDIR} #輸出空
echo ${MYDIR:
-`pwd`}

輸出:

/home/pxl/shelltest

在變量已賦值時(shí)進(jìn)行替換:

MYTEST=pxl
echo ${MYTEST}
echo ${MYTEST:
+"changevalue"}
echo $MYTEST

輸出:
pxl
changevalue
pxl

帶有錯誤檢查的有條件變量替換:

echo ${UNAME:?"UNAME has not been set"}
echo ${UNAME} #如果上一句判斷錯誤,這里不會(huì )執行

輸出:
./test.sh: 17: UNAME: UNAME has not been set

(2)位置變量(Shell參數)

在shell script中位置參數可用$1..$9表示,$0表示內容通常為當前執行程序的文件名。

可以使用shift [n] 來(lái)刪出指定前n個(gè)參數,n默認為1.

腳本test.sh
shift
shift
2
echo $
1
echo $0

執行:
$ .
/test.sh a b c d e

輸出:
d
./test.sh

 

條件測試命令

(1)數值測試:

-eq :等于則為真。
-ne :不等于則為真。
-gt :大于則為真。
-ge :大于等于則為真。
-lt :小于則為真。
-le :小于等于則為真。

(2)字串測試:
= :等于則為真。
!= :不相等則為真。
-z字串 :字串長(cháng)度偽則為真。
-n字串 :字串長(cháng)度不偽則為真。

(3)文件測試:
-e文件名 :如果文件存在則為真。
-r文件名 :如果文件存在且用戶(hù)有讀權限則為真。
-w文件名 :如果文件存在且用戶(hù)有寫(xiě)權限則為真。
-x文件名 :如果文件存在且用戶(hù)有可執權限行則為真。
-s文件名 :如果文件存在且至少有一個(gè)字符(大小不為零)則為真。
-d文件名 :如果文件存在且為目錄則為真。
-f文件名 :如果文件存在且為普通文件則為真。
-c文件名 :如果文件存在且為字符設備文件則為真。
-b文件名 :如果文件存在且為塊設備文件則為真。

 

表達式

(1) 與、或、非

&& :與

|| :或

!  : 非(需要有空格)

(2) expr命令

expr命令一般用于整數值,但也可用于字符串。一般格式為:
expr argument operator argument

其中operator為+ - * / %, 但對*的使用要用轉義符\。

v1=3
v2
=2
v3
=`expr $v1 \* $v2`
echo $v3

輸出:
6

 

#適用于/bin/bash,不適用于/bin/sh
v1=3
v2
=2
v3
=$[v1*v2]
echo
$v3

 

流程控制

(1) if 條件語(yǔ)句

if [ -f "$file" ] ; then
newfile
=`echo "$file" | sed "s/${OLD}/${NEW}/g"`
if [ -f "$newfile" ]; then
     echo
"ERROR: $newfile exists already"
else
echo
"renaming $file to $newfile ..."
mv
"$file" "$newfile"
fi
fi

 

(2) for 循環(huán)

for file in $*; do
if [ -f "$file" ] ; then
newfile
=`echo "$file" | sed "s/${OLD}/${NEW}/g"`
if [ -f "$newfile" ]; then
     echo
"ERROR: $newfile exists already"
else
echo
"renaming $file to $newfile ..."
mv
"$file" "$newfile"
fi
fi
done

 

for n in 9 8 7 6 5 4 3 2 1; do
if [ -f "$filen.$n" ]; then
p
=`expr $n + 1`
echo
"mv $filen.$n $filen.$p"
mv
$filen.$n $filen.$p
fi
done

 

#適用于/bin/bash,不適用于sh
for((i=1;i<=10;i++));do
echo
$i
done

 

(3) while 循環(huán)

while [ -n "$1" ]; do
echo
$1
shift
done

 

(4) case 條件

while [ -n "$1" ]; do
case
$1 in
-h) help;shift 1;; # function help is called
-f) opt_f=1;shift 1;; # variable opt_f is set
-l) opt_l=$2;shift 2;; # -l takes an argument -> shift by 2
--) shift;break;; # end of options
-*) echo "error: no such option $1. -h for help";exit 1;;
*) break;;
esac
done

 

參考資料

Shell編程基礎

shell編程簡(jiǎn)介

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
linux腳本編寫(xiě)基礎
Linux Shell編程入門(mén)
Shell編程基礎
Shell技巧匯總 - 操作系統 - linxh
和即將用到Shell的人們談?wù)凷hell傳遞參數
shell中的特殊字符
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久