Shell入门02
特殊变量:$n
- $0 获取当前脚本的名称
- $1 获取第一个参数
- $2 获取第二个参数
..... - 如果要获取第10个以后的参数请使用${10}、${11}...如果不加大括号的话,比如$10或误以为获取的是第一个参数再拼接0
- $# 获取所有参数的个数
- $* 获取所有的参数
- $@ 也是获取所有的参数
- 以上两个当不加双引号时,输出的效果都是一样的,如格式为: "$1 、$2 ...$n"
- 如果加上双引号后,$@获取一组参数列表对象, 格式为: "$1"、 "$2" "$n",通过循环就可以看出来
echo '循环输出$*的参数'
for item in "$*"
do
echo $item
done
echo ------------------------------------------
echo '循环输出$@的参数'
for item in "$@"
do
echo $item
done
- $?获取上条命令的退出状态码,或函数返回值,返回0代表执行成功,非0代表执行失败
- $$获取当前shell环境的进程id
Shell环境的加载原理
-
用户进入linux系统就会初始化shell环境,就会加载系统配置文件和用户个人配置文件中的环境变量
-
shell分为登录环境和非登录环境
- 登录环境是指:需要用户名和密码登录的shell环境
- 非登录环境是指:不需要用户名和密码登录的shell环境
-
shell配置文件分为全局配置文件和用户个人配置文件
- 全局:/etc/profile、 /etc/profile.d/*.sh 、/etc/bashrc
- 个人:/.bash_profile、/.bashrc
-
环境变量加载初始过程
-
如果验证当前是登录环境还是非登录环境:使用$?
- 如果返回的是-bash说明是登录环境
- 如果返回的是bash说明是非登录环境
-
非登录环境切换登录环境如: su testuser - l (输入密码)
-
登录环境切换为非登录环境输入:bash
-
如再非登录环境/.bashrc中添加了环境变量 (环境变量中,变量名建议都大写),如果要立马生效,需要重载配置文件
TESTA=888
export TESTA
使用source /home/xxx/.bashrc
本文来自博客园,作者:弩哥++,转载请注明原文链接:https://www.cnblogs.com/bangbangzoutianya/p/15195135.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」