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

歡迎訪問 生活随笔!

生活随笔

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

windows

Shell之系统函数和自定义函数

發(fā)布時(shí)間:2025/3/21 windows 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Shell之系统函数和自定义函数 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、系統(tǒng)函數(shù)

1.basename基本語法
basename [string / pathname][suffix]功能描述:basename命令會(huì)刪掉所有的前綴包括最后一個(gè)(‘/’)字符,然后將字符串顯示出來。

2、案例
(1)截取該/home/laoxiao/14for循環(huán)語句-4.sh路徑的文件名稱

[root@mylinux2 shell]# basename /home/shell/14for循環(huán)語句-4.sh 14for循環(huán)語句-4.sh

選項(xiàng):suffix為后綴,如果suffix被指定了,basename會(huì)將pathname或string中的suffix去掉。

[root@mylinux2 shell]# basename /home/shell/14for循環(huán)語句-4.sh .sh 14for循環(huán)語句-4 [root@mylinux2 shell]# basename /home/shell/14for循環(huán)語句-4.sh 語句-4.sh 14for循環(huán)

3、dirname基本語法
dirname 文件絕對(duì)路徑 (功能描述:從給定的包含絕對(duì)路徑的文件名中去除文件名(非目錄的部分),然后返回剩下的路徑(目錄的部分))

[root@mylinux2 shell]# dirname /home/shell/14for循環(huán)語句-4.sh /home/shell [root@mylinux2 shell]# dirname /home/zhilong/msb/abc/mulu/66.txt /home/zhilong/msb/abc/mulu

4、綜合運(yùn)用
將/opt/test/目錄下的所有文件改為以.txt結(jié)尾

dir="/opt/test/"for f in `opt/test/*.txt`;do#f就是opt/test目錄下的文件filename=`basename $f.txt .txt`dist_name=filename".sh"mv $f $dir$dist_name done

二、 自定義函數(shù)

1.基本語法

[ function ] funname[()] { Action; [return int;] } funname

注意:

(1)必須在調(diào)用函數(shù)地方之前,先聲明函數(shù),shell腳本是逐行運(yùn)行。不會(huì)像其它語言一樣先編譯。
(2)函數(shù)返回值,只能通過$?系統(tǒng)變量獲得,可以顯示加:return返回,如果不加,將以最后一條命令運(yùn)行結(jié)果,作為返回值。return后跟數(shù)值n(0-255)
(3)可以采用標(biāo)準(zhǔn)輸出:echo來作為函數(shù)的返回值

2、通過自定義函數(shù)計(jì)算輸入的2個(gè)參數(shù)的和

1 #!/bin/bash2 3 #自定義的一個(gè)函數(shù)4 function sum(){5 6 s=$[$1+$2]7 return $s8 9 }10 11 sum 100 20012 13 echo $?

執(zhí)行結(jié)果為:44

[root@mylinux2 shell]# bash 17自定義函數(shù)1.sh 44

分析:執(zhí)行結(jié)果為什么是44呢?明顯不對(duì),什么原因呢?
因?yàn)閞eturn后跟數(shù)值n(0-255)

1 #!/bin/bash2 3 #自定義的一個(gè)函數(shù)4 function sum(){5 6 s=$[$1+$2]7 return $s8 9 }10 11 sum 10 20012 13 echo $?

執(zhí)行結(jié)果為:210

[root@mylinux2 shell]# bash 17自定義函數(shù)1.sh 210

3、解決當(dāng)2個(gè)數(shù)的和大于255的方法
可以采用標(biāo)準(zhǔn)輸出:echo來作為函數(shù)的返回值

1 #!/bin/bash2 3 #自定義的一個(gè)函數(shù)4 function sum(){5 6 let s=$1+$27 8 echo $s9 }10 11 result=`sum 100 200`12 13 echo $result [root@mylinux2 shell]# bash 18自定義函數(shù).sh 300

三、計(jì)算1到n的階乘

1 #!/bin/bash2 3 if [ $# -ne 1 ];then4 echo "參數(shù)錯(cuò)誤,程序錯(cuò)誤"5 exit 36 fi7 8 #任何一個(gè)大于1的數(shù)字,它的階乘=n*(n-1)的階乘9 10 function jiecheng(){11 n=$112 if [ $n -le 1 ];then13 echo 1 #當(dāng)成n=1的時(shí)候函數(shù)的返回值14 return 0 #返回的是執(zhí)行狀態(tài)15 elif [ $n -gt 1 ];then16 let pre_n=n-117 temp=`jiecheng $pre_n` ##計(jì)算n-1的階乘18 let result=n*temp19 echo $result20 return 021 fi22 23 }24 25 jiecheng $1

總結(jié)

以上是生活随笔為你收集整理的Shell之系统函数和自定义函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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