Skip to content

系统函数

basename

语法

basename [string/pathname] [suffix]

功能

会删除掉最后一个 / 之前的所有字符,然后将剩余字符串显示出来。

sh
echo $(basename $0 .sh)

dirname

语法

dirname 文件绝对目录

功能

去除非目录部分,返回目录部分。

获取文件的绝对路径

sh
cd $(dirname $0)
echo $(pwd)

# 或者
echo $(cd $(dirname $0); pwd)

自定义函数

语法

[] 内的内容可省略

sh
[function] name[()]
{
  # do someting...
  [return int;]
}
  • 调用函数之前,必须先声明。

  • 函数返回值,只能通过 $? 获取,可以显示指定返回值 return n,n 的取值为 0 - 255, 如果不指定,以最后一条命令运行结果作为返回值。

示例

sh
function add () {
  echo $[$1 + $2]
}

read -p "输入第一个整数: " a
read -p "输入第二个整数: " b

add $a $b
sh
function add () {
  return $[$1 + $2]
}

read -p "输入第一个整数: " a
read -p "输入第二个整数: " b

add $a $b
# 虽然能获取到 add 的返回值,但返回值不为数字或超出 255 时不好使。
echo $?
sh
function add () {
  echo $[$1 + $2]
}

read -p "输入第一个整数: " a
read -p "输入第二个整数: " b

sum=$(add $a $b)
echo $sum