Shell编程---source 和 ./ 和sh 运行脚本的区别 & 更新环境变量

本文介绍了三种常用的Shell脚本执行方法:sh、./ 和 source(或.),并详细阐述了它们之间的区别。此外,还说明了如何通过source命令更新环境变量。

运行shell脚本一般有三种方式:sh,./ 和 source。
sh 和 ./ 功能差不多,./不能执行没有执行权限的脚本,而sh可以;两者都是继承父shell在子shell环境中运行脚本,运行完毕后不带回父shell环境中。
source 或者 点符号. 运算则是在当前shell中执行脚本。如,运行完脚本后,可以用echo打印出脚本的变量。
若在/etc/profile中添加环境变量,则可以使用source /etc/profile来更新脚本到shell环境中,然后使用echo $PATH 打印环境变量查看环境变量是否更新过来。否则,需要重启才能更新环境变量

该命令行脚本用于配置环境变量、设置 Docker 镜像执行构建任务。以下是对每个部分的详细解释: 1. `export PATH=/mtkeda/cas/tools/mfs:$PATH` 此命令将 `/mtkeda/cas/tools/mfs` 目录添加到系统的 `PATH` 环境变量的最前面,使用户可以在当前 shell 会话中直接运行该目录下的可执行文件[^1]。 2. `export DOCKERQ_IMAGE='mtkdocker01:5000/srv_itofficial/ubuntu.18.04:latest.odb'` 设置名为 `DOCKERQ_IMAGE` 的环境变量,其值为指定的 Docker 镜像地址标签。此镜像将在后续的构建过程中使用。 3. `source mi3_mt5221_anu_profile_bsp_tip.sh "kustardapple"` 使用 `source` 命令执行 `mi3_mt5221_anu_profile_bsp_tip.sh` 脚本传递参数 `"kustardapple"`。这通常用于加载特定配置或初始化环境变量,例如设置交叉编译工具链路径、目标平台参数等。 4. `dockerq ./build_mi3_stb.sh --buildAnOta=incremental --hash=./vendor/mediatek-stb/mi/misdk/mi/build/Customer_Info.h` 在指定的 Docker 容器环境运行 `build_mi3_stb.sh` 构建脚本传递两个参数: - `--buildAnOta=incremental` 表示构建增量更新包(OTA)。 - `--hash=./vendor/mediatek-stb/mi/misdk/mi/build/Customer_Info.h` 指定一个哈希文件,可能用于校验或标识客户信息。 5. `2>&1 | tee build.log` 将标准错误输出(文件描述符 2)重定向到标准输出(文件描述符 1),然后通过管道传给 `tee` 命令,同时显示在终端写入 `build.log` 文件中。这样可以实时查看构建日志保留记录供后续分析。 ### 示例代码片段 ```bash # 设置环境变量执行构建流程 export PATH=/mtkeda/cas/tools/mfs:$PATH && \ export DOCKERQ_IMAGE='mtkdocker01:5000/srv_itofficial/ubuntu.18.04:latest.odb' && \ source mi3_mt5221_anu_profile_bsp_tip.sh "kustardapple" && \ dockerq ./build_mi3_stb.sh --buildAnOta=incremental --hash=./vendor/mediatek-stb/mi/misdk/mi/build/Customer_Info.h 2>&1 | tee build.log ``` ###
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值