linux中的shell有系統函數;shell編程和其他編程語言一樣有系統函數,同時也可以自定義函數,例如可以利用basename系統函數來獲取文件名,語法為“basename [pathname] [suffix]”,利用dirname系統函數來返回文件的路徑部分,語法為“dirname 文件位置”。
本教程操作環境:linux7.3系統、Dell G3電腦。
linux中的shell有系統函數嗎
linux中的shell有系統函數
函數介紹
shell 編程和其它編程語言一樣,有系統函數,也可以自定義函數。系統函數中,我們這里就介紹兩個。
1. 系統函數
basename基本語法
功能:返回完整路徑最后 / 的部分,常用于獲取文件名
basename?[pathname]?[suffix]
basename [string] [suffix] (功能描述:basename 命令會刪掉所有的前綴包括最后一個(‘/’)字符,然后將字符串顯示出來。
選項:
suffix 為后綴,如果 suffix 被指定了,basename 會將 pathname 或 string 中的 suffix 去掉。
應用實例
案例 1:請返回 /root/test-linux/aaa/aaa.txt 的 “aaa.txt” 部分
basename?/root/test-linux/aaa/aaa.txt
可以使用 basename 來獲取文件名。把后綴帶上就只會返回文件名,沒有后綴
dirname 基本語法
功能:返回完整路徑最后 / 的前面的部分,常用于返回路徑部分
dirname 文件絕對路徑 (功能描述:從給定的包含絕對路徑的文件名中去除文件名(非目錄的部分),然后返回剩
下的路徑(目錄的部分))
應用實例
案例 1:請返回 /root/test-linux/aaa/aaa.txt 的 /root/test-linux/aaa
dirname?/root/test-linux/aaa/aaa.txt
2. 自定義函數
基本語法
[?function?]?funname[()] { Action; [return?int;] }
調用直接寫函數名:funname [值]
應用實例
案例 1:計算輸入兩個參數的和(動態的獲取), getSum
#!/bin/bash #定義一個函數?getSum function?getSum(){ ????????SUM=$[$n1+$n2] ????????echo?"和是=$SUM" } #輸入兩個值 read?-p?"請輸入一個數n1="?n1 read?-p?"請輸入一個數n2="?n2 #調用自定義函數 getSum?$n1?$n2
推薦學習:Linux視頻教程