标签:判断 shift 过程 shell基础 特殊变量 函数传参 比较 子进程 bsp
()执行命令,子进程执行
类型 变量及其使用
变量,类型字符串,本地变量,环境变量
通配符3个
输入输出
标准输入
read
标准输出
echo print
除此之外都是扩展
扩展有两种
命令扩展
变量扩展
shell的各种符号就是为了区分 命令 变量 字符串 表达式
扩展
1.$() ``
命令扩展
2.$[] $(())
整形计算扩展
3.${}
变量扩展
4."" ‘‘
字符串
""允许变量扩展和命令扩展
‘‘只为字符串
条件判断
条件判断是解释器调用程序按照参数执行,通过程序返回值判断真假。
0为真 1为假
条件判断程序
test [
判断有4种格式
(1)
判断参数 -d -f -z -n
(2)
str1 = str2 str1 != str2
(3)
var1 op var2
op 有 -gt -lt -ge -le
这只能比较整数
(4)
expr1 op expr2
! expr
op 有 -a -o
注意 程序后都为参数,参数之间有空格
为了区分定义,和是否相等,=两边必须有空格
[的]为参数所以必须空格
if :; then
else
elif
fi
: 表示真
case "$1" in
no|No)
;;
[yY]*)
;;
*)
;;
esac
for var in a b C; do
echo $var
done
for var in $(ls); do
echo ${var}
done
sh的for是遍历 in后的,var就是一个iter.
while同c的while
while :; do
done
特殊变量
$0 argv0 a.out
$1
$# argc-1
$? 上个进程的返回
$@ $* arg123456 用于foreach
$$ 当前进程进程号
shift 移动 $123456 左移
输入输出
sh命令有些有输入输出,没有的使用命令行输入。
|
tee file 多输出一份到file
> 输出重定向
< 输入重定向
2>&1 标准错误重定向到标准输出
注意 1.被修改的写在箭头左边,右边取地址 2.这整个是一个参数,中间无空格
cmd < &1 关闭标准输入
cmd < &fd fd做输入
函数
sh的函数不指定参数列表和返回值,但可以传参,和返回。
函数名和()表示定义函数
func() {
echo $0
echo $1
echo $2
return 0
}
func 1 2 3
函数传参使用命令行参数方式,函数有自己的$123,由于函数是xx.sh所以$0表示xx.sh.
函数返回值的使用,函数返回,直接扩展函数为返回值。
if func ; do
done
调试
bash a.sh -n 检查语法错误
set -x 将命令和结果打印
set +x
标签:判断 shift 过程 shell基础 特殊变量 函数传参 比较 子进程 bsp
原文地址:https://www.cnblogs.com/yangxinrui/p/11037320.html