在shell 指令碼中$0 通常用於顯示指令碼的名稱,在不使用basename 的時候會顯示指令碼的路徑名稱例如1
2
3
4
5
cat
test5.sh
#!/bin/bash
# testing the $0 parameter
echo
the zero parameter is
set
to:$0
執行指令碼
bash /root/shell/test5.sh
the zero parameter is set to:/root/shell/test5.sh ##顯示了指令碼的路徑
新增basename 後
1
2
3
4
#!/bin/bash
# testing the $0 parameter
name=$(
basename
$0 )
echo
the zero parameter is
set
to:$name
執行指令碼
bash /root/shell/test5b.sh
the zero parameter is set to:test5b.sh ##直接顯示指令碼名稱
簡單例項,根據指令碼的不同名稱執行不同的功能,當指令碼名稱是addem,執行加法、是multem的時候執行乘法
指令碼如下
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/bash
#testing a multi-function script
name=$(
basename
$0)
#
if
[ $name =
"addem"
]
then
total=$[ $1 + $2 ]
elif
[ $name =
"multem"
]
then
total=$[ $1 * $2 ]
fi
echo
the calculated value is $total
cp test6.sh addem
cp test6.sh multem
執行addem 指令碼
./addem 25 3
the calculated value is 28
執行multem 指令碼
[root@vm_71_179_centos shell]# ./multem 3 5
the calculated value is 15
Linux中的basename命令使用例項
basename是乙個命令列中實用的小工具,可從給定的檔名中刪除目錄和字尾。系統環境 centos7 如何使用basename命令 在centos7系統中,已經預設安裝了basename命令了,該命令包含在coreutils安裝包裡。basename有兩種語法 basename name suffi...
dirname和basename的用法
dirname 取乙個檔案的目錄,example a user guicl shell bash test.sh echo dirname a 結果 user guicl shell bash basename 取乙個檔案的檔案部分,可以是去掉目錄,也可以是去掉字尾 a user guicl she...
shell指令碼中的函式, shell中的陣列
示例1 bin bash 函式的使用 input input 1 a b root second fun.sh 1 a 3 fun.sh 示例2 bin bash 傳遞乙個引數給函式 input read p please input n input root second fun.sh pleas...