【shell】shell函数
shell函数

| 写法 | 含义 | 推荐程度 |
|---|---|---|
"$@" |
保留每个参数原样传递 | ✅ 强烈推荐 |
$@ |
参数可能被拆分、通配符展开 | ❌ 不推荐 |
"$*" |
所有参数合并成一个字符串 | 特殊场景用 |
$* |
也会发生拆分 | ❌ 不推荐 |
#!/bin/bash
echo '--- "$@" ---'
for arg in "$@"; do
echo "[$arg]"
done
echo '--- $@ ---'
for arg in $@; do
echo "[$arg]"
done
执行:
./test.sh "a b" "*.txt" c
输出:
--- "$@" ---
[a b]
[*.txt]
[c]
--- $@ ---
[a]
[b]
[匹配到的txt文件...]
[c]
说明:$@ 不加引号时,*.txt 还可能被当成通配符展开。
例1:
#!/bin/bash
#函数定义
function url(){
echo "http://c.biancheng.net/shell/"
}
#函数调用
url
function func1() {
echo 1
return 2
echo 3
}
res=$(func1)
echo $res
输出:
1
function func1() {
echo 1
return 2
echo 3
}
func1
echo $?
res=$?
echo $res
输出:
1
2
0
例2:
#!/bin/bash
function getsum(){
local sum=0
for n in $@
do
((sum+=n))
done
return $sum
}
getsum 10 20 55 15 #调用函数并传递参数
echo $? #函数返回值
例3: 判断操作系统类型:
#!/bin/bash
if [[ "$OSTYPE" == "darwin"* ]]; then
echo "macOS"
elif [[ "$OSTYPE" == "linux-gnu"* ]]; then
echo "Linux"
else
echo "Unknown OS"
fi

浙公网安备 33010602011771号