Bash 基础:脚本执行、引号与命令替换验证

Bash 基础:脚本执行、引号与命令替换验证

1. 用途介绍

Bash 将命令组合为可重复执行的脚本,适用于文件处理、任务编排和运维自动化。本文区分解释器调用、直接执行、source 加载,并说明引号和命令替换的行为。

2. 准备运行环境

Linux Bash 普通账号即可,不需要 root 或网络。cat /etc/shells 查看列出的登录 Shell,bash --version 确认版本;/etc/shells 不等于系统全部已安装解释器清单。

3. 相关知识与注意点

• bash script.sh 通常不要求脚本可执行,但要可读取;./script.sh 需要执行权限和正确 shebang。

• sh script.sh 使用 sh,不保证支持 Bash 扩展语法。

• source script.sh 或 . ./script.sh 在当前 Shell 执行,可能修改当前变量、目录或直接 exit;只加载可信文件。

• 单引号保留字面内容,双引号允许变量和命令替换;无引号会发生分词和通配符展开。

• $(...) 比反引号更易嵌套;会去掉捕获输出的末尾换行。不要解析 ls 输出做通用文件名列表。

• Bash 变量通常保存字符串,也支持整数等属性,不能把所有 Shell 一概描述为同一类型系统。

4. 实验步骤

bash 复制代码
name='demo value'
printf '%s\n' '$name' "$name"
result=$(printf 'hello\n')
printf '<%s>\n' "$result"

预期依次显示字面 $name、demo value、<hello>。示例为预期值,不是本机执行报告。

保存为 demo.sh:

bash 复制代码
#!/usr/bin/env bash
printf 'hello from Bash\n'
bash 复制代码
bash -n demo.sh
bash demo.sh
chmod u+x demo.sh
./demo.sh

前两种执行不把子进程中的普通变量修改自动传回父 Shell;source 行为不同。

5. 原实验截图

6. 验证与快捷键

用 bash -n 检查语法后再执行,比较两次 hello 输出。交互式 Bash 默认 Emacs 编辑模式下,Ctrl+A/E 到行首/尾,Ctrl+U/K 删除部分命令,Ctrl+Y 粘回,Ctrl+L 清屏;其他键位模式可能不同。脚本不需要服务端口或 systemctl 验证。

相关推荐
CodeYp201910 分钟前
第13讲:HTTPS 协议原理
linux·https
一条破秋裤1 小时前
【1112】Linux中断【整理】
linux·运维·服务器
SomeOtherTime1 小时前
Rust生命周期介绍(AI回答)
开发语言·后端·rust
程序猿打工仔1 小时前
计算机基础(C语言)考编、专技岗
c语言·开发语言·算法
喵本喵叁肆2 小时前
Rényi 差分隐私:把隐私损失看成一族矩(英文原题:Rényi Differential Privacy (CSF 2017))
开发语言·r语言
CodeYp20192 小时前
第14讲:传输层协议 UDP
linux·udp
北京迅为2 小时前
案例分享 | RK182X算力卡:多路视频VLM监控,四路画面AI同时看懂,一句人话说清现场
linux·人工智能·嵌入式·rk3588·算力卡·rk182x
Hvitur3 小时前
Java - Lambda
java·开发语言·python
xiaoye-duck3 小时前
《C++ 项目:手写大模型接入 SDK》DataManager数据管理模块:SQLite持久化存储
开发语言·数据库·c++·sqlite
Evand J3 小时前
【MATLAB例程,PMSM19】永磁同步电机(PMSM)基于多速率无迹卡尔曼滤波(UKF)的转速与转子位置估计。测量缺失、状态预测与恢复性能分析
开发语言·matlab·电机·ekf·卡尔曼·电机滤波