当前位置: 首页 > news >正文

Shebang行的写入

将以下内容写入文件semester,每次写入一行

#!/bin/sh
curl --head --silent https://missing.csail.mit.edu

1 Shebang 行 (#!/bin/sh)

Shebang 行 (#!/bin/sh)是 UNIX/Linux 系统中脚本的标准开头(称为 “shebang” 或 “hashbang”),作用是指定脚本的解释器。

  • #! 是固定前缀
  • /bin/sh 是系统默认 Shell 的路径
2 问题

使用echo #!/bin/sh > semester写入Shebang行失败,因为#被Bash解析为注释符号。

3 解决方案

使用单引号包裹内容:

  echo '#!/bin/sh' > semester  # ✅ 正确写法

避免无引号或双引号:

echo #!/bin/sh > semester    # ❌ 注释导致写入失败
echo "#!/bin/sh" > semester  # ❗ 双引号在启用历史扩展时可能报错

!后接字符串可能被解析为历史命令引用(如!123表示执行历史记录第123条命令)
而使用单引号'包裹,能禁用其解析

4 # 触发注释的条件
  1. 出现在单词的起始位置(即前面是空格或命令分隔符)且未被引号包裹(单引号 ' 或双引号 "
  2. 后面紧跟!,即#!不在脚本第一行作为Shebang生效时
5 单引号'与双引号"的区别
5.1 单引号 ' 的行为

完全字面量,完全禁用所有特殊字符的解析:

  • 字符串中的 *$! 等符号都会被当作普通字符。
  • 变量不会被扩展。
5.2 双引号 " 的行为

允许部分特殊字符的解析:

  • 变量(如 $VAR)会被扩展。
  • 命令替换(如 $(cmd)`cmd`)会被执行。
  • 部分转义:$、反斜杠转义字符\(如 \n\t)等会被解析;但*不会被解析
http://www.dtcms.com/a/85377.html

相关文章:

  • qt 对QObject::tr()函数进行重定向
  • 【工程实践/源码阅读】批量文件处理步骤以及如何并行处理
  • Ubuntu下用QEMU模拟运行OpenBMC
  • 解决address already in use报错:如何查看占用某个端口的程序并杀死
  • 【uni-app】引用公共组件
  • 数据预处理流程与关键步骤解析
  • React 开发环境搭建
  • 多个内容滑动轮播图【前端】
  • 第十六次CCF-CSP认证(含C++源码)
  • c++图论(五)之判断图连通
  • 浪潮信息再塑AI+OS格局,联手龙蜥共筑未来
  • 元数据管理系列(一):元数据管理的前世今生
  • 实战3. 利用Pytorch预写好ResNet-18预测电视剧《辛普森一家》中的人物——图像分类
  • Ceph集群2025(Squid版)导出高可用NFS集群(上集)
  • 第一人称动作识别文献阅读——LSTA:用于自我中心动作识别的长短期注意力机制
  • 第二章 | 智能合约 区块链基础知识{介绍篇}
  • 三、重学C++—C语言内存管理
  • PyTorch 面试题及参考答案(精选100道)
  • 圆弧插补相关算法汇总(C++和ST源代码)
  • Spring6: 1概述
  • 拆解美团2024年报,业务协同、生态共赢、科技创新
  • POP点、LT、DX、YD
  • 20250322 c++gesp三级编程题答案
  • Linux shell脚本2-test条件测试语句:文件类型、字符串是否相等、数字大小比较、多重条件判断,测试语句验证
  • Kafka消息序列化深度革命:构建高性能、高安全的自定义编码体系
  • 从扩展黎曼泽塔函数构造物质和时空的结构-7
  • 详解c语言键盘输入联系小程序
  • 解密模型上下文协议(MCP):下一代AI交互框架
  • 使用密码连接Redis服务的两种方式
  • Linux的Autojump库的安装和使用