linux 学习笔记四

linux 学习笔记四

shell 执行过程

shell

bash 类型

Login Bash
Interactive Bash

shell 执行

• 父 shell Fork 一 sub-shell
• Sub-shell继承父shell环境
• Sub-shell调用指定的解释器解释执行该脚本
• Sub-shell退出,相关环境被销毁
• 父 shell 取得 sub-shell 的退出状态

shell 解析

1 、 brace expansion (花括号扩展)
2 、 tilde expansion (波浪线扩展)
3 、 parameter, variable expansion (变量扩展)
4 、 arithmetic expansion (算术扩展)
5 、 command substitution (命令替换)
6 、 word splitting (词的拆分)
7 、 pathname expansion (路径名扩展)

Bash 语法

变量

• 变量赋值: name=value
• 变量引用: ${name}

合法的变量名: 字母、下划线、数字
注意:
– = 号两边不允许空格
– $name 是 ${name} 的简写

常用变量

数值计算

      • / % ( 加 , 减 , 乘 , 除 , 取模 )

i=10; j=20;
(( i++ ))
(( cnt=i+j))
cnt=$(( i+j)) (( k = i * j ))
(( k = j / i ))
(( k = j % i ))

流程控制

提交判断:

– if
– && 与 ||
– case

循环:

– for, while
– break, continue


# if else
if expression; then
...
if [[ -f /etc/SuSE-release ]]; then
elif  expression;  then
echo SUSE OS ...
else
elif [[ -f /etc/slackware-version ]]; then
   echo Slackware OS
else
   echo “Redhat ?”
fi

# && ||
[[ -z $default ]] && default=”ok”
[[ -n $default ]] || default=”ok”

# case 
case $var in
   condition1)
     ...
     ;;
   condition2)
    ... ;;
   *)
    ... ;;
esac
  
# for  
for var in item1 item2 ... itemN
do
    command1
    command2
    ...
    commandN
done

# while 

while condition
do
    command
done

函数

shell中函数的定义格式如下:

[ function ] funname [()]

{

    action;

    [return int;]

}

说明:
1、可以带function fun() 定义,也可以直接fun() 定义,不带任何参数。
2、参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。 return后跟数值n(0-255)

原文地址:https://www.cnblogs.com/SLchuck/p/11533087.html