函数
# 标准定义
function funName () {
....
[return int;]
}
# 简写 function 可以省略
funName () {
....
[return int;]
}
# 简写 () 可以省略
function funName {
....
[return int;]
}
## 函数调用
# 直接 函数名即可 无参数
funName
# 参数 函数名即可
funName 参数1 参数2 参数3 参数4
参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。 return后跟数值n(0-255)
重定向
Shell 文件包含
和其他语言一样,Shell 也可以包含外部脚本。这样可以很方便的封装一些公用的代码作为一个独立的文件。
Shell 文件包含的语法格式如下:
. filename # 注意点号(.)和文件名中间有一空格
或
source filename
注:
包含的文件 2.sh 需要可执行权限。
被包含的文件1.sh 不需要可执行权限。
命令替换 \ 变量替换
命令替换
替换就相当于.net中 format {1},{2}。用后面的参数进行替换。用来重组命令的
$( )与``(反引号)都是用来作命令替换的
先完成引号里的命令行,然后将其结果替换出来,再重组成新的命令行。
推荐用 $() 多个
反引号,容易搞乱。 易读性差
$() 和 `` 可以混合使用的
变量替换
$var1 与 ${var1} 推荐用 ${}
$var1 与 ${var1} ${var1} 可读性好,因为有个{}边界符 echo ${a}1234 echo
a
1234
如果
a1234 如果
a1234如果a 与1234中间没有空格,意思就有异常,是读取a1234的变量值了。
echo ${a}1234 # 表示变量a后面连接1234
echo $a1234 # 表示变量a1234
获取参数 $0 到 9 效果跟 9 效果跟 9效果跟{0}-${9} 一样, 但参数超过10 $10 就要改成 ${10}
获取路径、文件名、文件格式
变量赋值 特殊处理