当前位置: 代码迷 >> 综合 >> shell基础教程-3-bash运行环境,输入输出,脚本执行,函数
  详细解决方案

shell基础教程-3-bash运行环境,输入输出,脚本执行,函数

热度:35   发布时间:2023-10-28 21:43:12.0
一, Shell运行环境概念
  1. bash是一个进程
  2. bash下还可以再重新启动一个shell,这个shell是sub shell,原shell会复制自身给它
  3. 在sub shell中定义的变量,会随着sub shell的消亡而消失
  4. () 子shell中运行
  5. {} 当前shell中执行
  6. $$ 当前脚本执行的pid
  7. & 后台执行
  8. $! 运行在后台的最后一个作业的pid(进程ID)
echo $$  # 查看当前进程pid
bash     # 启动一个bash
exit     # 退出
  • 启动一个子shell
    启动bash
  • 赋值完毕后子shell就消亡了,所以取不到a,所以拿到的是外面定义的a
    在这里插入图片描述
  • 子shell和当前shell不会相互影响
    子shell和shell不会相互影响
  • 大括号表示当前shell,所以这边2个都可以正常打印
    大括号表示当前shell
  • 后台执行
  • jobs:查看进程
    后台执行
  • 把终止的程序调出来
sleep 15      # 休眠15s
ctrl+Z        # 暂停(Z要大写)
jobs          # 查看进程
bg + 任务号    # 调出来,继续执行休眠 bg:BackGround 后台
fg + 任务号    # 停止休眠 fg:ForeGround 前台

在这里插入图片描述

二, Shell运行环境
  1. shell首先是一个工作环境,有很多变量可以供我们使用
  2. set可以获得当前所以变量
  3. env可以获得可以传递给子进程的变量
  4. export aa=bbbb 把私有变量导出
三, Shell输入输出
  1. Read 用来读取输入,并赋值给变量
  2. echo . printf 可以简单输出变量
  3. > file 将输出重定向到另一个文件,等价于tee
  4. >> 表示追加,等价于tee -a
  5. < file 输入重定向
  6. | 表示管理,也就是前一个命令的输出传入下一个命令的输入
    在这里插入图片描述
四, Shell脚本的执行方式

执行shell脚本一般有2种方式

# 方法1
bash xxx.sh
# 方法2
chmod +x xxx.sh  # 赋执行权限
./xxx.sh  # ps:如果配置了环境变量,直接xxx.sh就好
五,shell函数
# 定义函数
functionName(){
    
代码块
}
# 执行函数
functionName

ps:执行函数的时候,一般最多只能传9个值,如果超过9的话,需要加大括号{},否则就取不到想要的值

$ cat test2.sh
func()
{
    
echo "第一个参数为 $1!"
echo "第二个参数为 $2!"
echo "第十个参数为 $10 !"
echo "第十个参数为 ${10} !"
echo "第十一个参数为 ${11} !"
echo "参数的总个数有 $# 个"
}
func a b c d e f g h i j k l m n
-----------------
# 输出结果为
“第一个参数为 a!”
“第二个参数为 b!”
“第十个参数为 a0 !”
“第十个参数为 j !”
“第十一个参数为 k !”
“参数的总个数有 14 个”
  相关解决方案