码迷,mamicode.com
首页 > 系统相关 > 详细

shell基础

时间:2019-06-16 23:21:43      阅读:272      评论:0      收藏:0      [点我收藏+]

标签:判断   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

 

shell基础

标签:判断   shift   过程   shell基础   特殊变量   函数传参   比较   子进程   bsp   

原文地址:https://www.cnblogs.com/yangxinrui/p/11037320.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!