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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

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

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

一、系統函數

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

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

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

選項:suffix為后綴,如果suffix被指定了,basename會將pathname或string中的suffix去掉。

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

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

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

4、綜合運用
將/opt/test/目錄下的所有文件改為以.txt結尾

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

二、 自定義函數

1.基本語法

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

注意:

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

2、通過自定義函數計算輸入的2個參數的和

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

執行結果為:44

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

分析:執行結果為什么是44呢?明顯不對,什么原因呢?
因為return后跟數值n(0-255)

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

執行結果為:210

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

3、解決當2個數的和大于255的方法
可以采用標準輸出:echo來作為函數的返回值

1 #!/bin/bash2 3 #自定義的一個函數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 300

三、計算1到n的階乘

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

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。