linux 学习笔记四
linux 学习笔记四
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)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构