运行shell脚本出现Bad Substitution错误

2023-05-16

通过sh xxx.sh运行某个shell脚本,发现出现Bad Substitution错误。

最终发现是shell脚本解释器的问题,我采用sh这个命令执行的脚本,对sh这个命令,查看其属性发现:
在这里插入图片描述
即最终指向的是dash这个解释器。而我们的shell脚本中,有一些数组操作,dash解释器不支持这些操作,而bash解释器支持这些操作,因此,我需要用bash解释器翻译我的shell脚本才行。

通过chmod +x xxx.sh ./xxx.sh
来执行我的shell脚本(此时使用的是bash解释器),此时发现没有了该错误。

总结:

遇到此类错误,不一定代表脚本内容有问题,很可能是用错了解释器。

参考:

  • Linux shell语言——dash和bash(可以把dash理解成轻量化的bash,并且现在Debian和Ubuntu中sh命令默认指向dash了,dash运行速度快,但比bash支持的语法和功能少一些,具体差异见该博客)
  • bash: Bad Substitution
    在这里插入图片描述
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

运行shell脚本出现Bad Substitution错误 的相关文章

  • shell脚本“x$VARIABLE”中x的用途[重复]

    这个问题在这里已经有答案了 我正在查看一些 shell 脚本 comarison shcu 中 x 的用途是什么 if x USER x RUN AS USER then su RUN AS USER c CATALINA HOME bin
  • 在powershell中检查文件是否可读且正常

    我是 powershell 新手 我想检查文件是否可读且正常 在 unix 中 我们可以使用 f 和 r 在一行中完成此操作 例如 以下 shell 脚本函数接受文件名作为参数并检查文件的可读性和规律性 与此等效的 powershell 是
  • 如何让“grep”从文件中读取模式?

    假设有一个很大的文本文件 我只想打印与某些模式不匹配的行 显然 我可以使用egrep v patter1 pattern2 pattern3 现在 如果所有这些模式都在一个文本文件中怎么办 最好的制作方法是什么egrep从文件中读取模式 g
  • 将“npm run start”的输出写入文件

    我想捕获的输出npm run start在一个文件中 我遇到了大量错误 我想更好地控制如何筛选输出 当我尝试时 npm run start gt log txt 我得到一个非常简短的文件 8 行 其结尾为 34m 39m 90m wdm 3
  • Bash 方法的返回值总是模 256

    我有一个 bash 脚本方法 它返回输入值 然而 返回值始终是模 256 的值 我用 google 搜索了一段时间 发现this http www tldp org LDP abs html exitcodes html文章说它总是以 25
  • Bash 脚本大小限制?

    我有一个 bash 脚本 在 RHEL 或 OS X 上运行时出现以下错误 第 62484 行 意外标记 换行符 附近出现语法错误 第 62484 行 o gz 这是一个自动生成的脚本 用于解决我公司使用的 Grid Engine 计算集群
  • 拆分字符串以仅获取前 5 个字符

    我想去那个地点 var log src ap kernelmodule 10 001 100 但看起来我的代码必须处理 ap kernelmodule 10 002 100 ap kernelmodule 10 003 101 等 我想使用
  • Bash 解析和 shell 扩展

    我对 bash 解析输入和执行扩展的方式感到困惑 对于输入来说 hello world 作为 bash 中的参数传递给显示其输入内容的脚本 我不太确定 Bash 如何解析它 Example var hello world displaywh
  • shell脚本中关联数组的时间复杂度

    我想知道在 shell 脚本中使用关联数组时如何构造 实现 另外 我想知道基于 shell 脚本的关联数组的时间复杂度是否是最佳的 因为我们可以使用字母和数字作为它们各自的键 编辑 他们使用什么哈希函数 如果您使用关联数组 则不能通过 使用
  • 如何在递归调用函数时阻止 bash 创建子 shell

    这是一个计算阶乘的简单 shell 函数 bin bash function factorial if 1 lt 2 then echo 1 else echo 1 factorial 1 1 fi factorial 1 但我发现这个脚本
  • git 别名中的 AWK 语句

    我正在尝试创建一个 git 别名来以特定格式打印日志中的所有拉取请求 但是 我在使用 AWK 删除双空格时遇到问题 这是使用以下命令的 git log 的输出 git log merges grep pull request pretty
  • 如何在 shell 脚本中操作 $PATH 元素?

    有没有一种惯用的方法从类似 PATH 的 shell 变量中删除元素 这就是我想要的 PATH home joe bin usr local bin usr bin bin path to app bin and remove or rep
  • 有没有办法让我简化这些回声? [复制]

    这个问题在这里已经有答案了 我仍在学习如何编写 shell 脚本 并且我面临着一个挑战 让我更容易回显 Name1 Name2 Name15 我不太确定从哪里开始 我已经想法 但如果我搞砸了 我不想看起来很傻 有什么帮助吗 我实际上还没有尝
  • 添加要在给定命令中运行的 .env 变量

    我有一个 env 文件 其中包含如下变量 HELLO world SOMETHING nothing 前几天我发现了这个很棒的脚本 它将这些变量放入当前会话中 所以当我运行这样的东西时 cat env grep v xargs node t
  • 使用 awk 读取文件并搜索另一个文件

    我正在读取一个文件 每行都有数字 我需要搜索另一个满足这些数字和其他条件的文件 我正在尝试使用 awk 来做到这一点 但遇到了问题 File a txt 1476 1477 1497 现在我需要打印第 12 列包含这些数字的行以及第 3 列
  • 使用正则表达式模式查找 -name 并使用 cp 替换文件名

    目前我正在使用该命令cron复制 data从源到目标路径 find source path name data exec cp target path 源码结构为 source path category1 001 data source
  • 在脚本内使用不带密码的 sudo

    由于某种原因 我需要作为用户在没有 sudo 的情况下运行脚本 script sh 该脚本需要 root 权限才能工作 我认为将 sudo 放入 script sh 中是唯一的解决方案 让我们举个例子 script sh bin sh su
  • 是否可以创建一个脚本来保存和恢复权限?

    我正在使用 Linux 系统 需要对一组嵌套文件和目录进行一些权限实验 我想知道是否没有某种方法可以保存文件和目录的权限 而不保存文件本身 换句话说 我想保存权限 编辑一些文件 调整一些权限 然后将权限恢复到目录结构中 将更改的文件保留在适
  • 当 grep "\\" XXFile 我得到“尾随反斜杠”

    现在我想查找是否有包含 字符的行 我试过grep XXFile但它暗示 尾随反斜杠 但当我尝试时grep XXFile没关系 谁能解释一下为什么第一个案例无法运行 谢谢 区别在于 shell 处理反斜杠的方式 当你写的时候 在双引号中 sh
  • 符合 POSIX 标准的 shell 相当于 Bash“while read -d $'\0' ...”?

    我正在尝试使 Bash 脚本严格符合 POSIX 标准 即消除任何潜在的 Bashisms http mywiki wooledge org Bashism 通过使用checkbashisms px script filename 在给定的

随机推荐

  • tcp黏包问题

    服务端代码如下 xff1a span class token keyword package span main span class token keyword import span span class token punctuati
  • go sync.Pool 深入

    new函数的调用时机和pool的内存释放规则 以下代码调用了四次Get函数 xff0c 但是并不是每次都会new 第一次 xff0c 是a 61 pool Get byte xff0c 首次Get xff0c 在pool的private私有
  • 【AI理论学习】深入理解扩散模型:Diffusion Models(DDPM)(理论篇)

    深入理解扩散模型 xff1a Diffusion Models 引言扩散模型的原理扩散过程反向过程优化目标 模型设计代码实现Stable Diffusion DALL E Imagen背后共同的套路Stable DiffusionDALL
  • gin 框架原理

    Gin的路由原理 Gin的路由基于Trie树和压缩字典树算法 xff0c 什么是Trie树 xff1f 其实很好理解 xff0c 看下图 xff1a 单词at xff0c bee xff0c ben xff0c bt xff0c q组成的T
  • PowerDesigner导入sql脚本

    1 依次点击File gt Reverse Engineer gt Database 2 弹出弹窗对模型进行命名 xff0c 同时在DBMS下拉选择框中需要选择自己对应的数据库类型 xff0c 点击确定 新的弹窗 xff0c 选中Using
  • Gin路由算法模拟

    概述 Gin的路由算法是采用压缩字典树实现的 xff0c 基数树 xff08 Radix Tree xff09 又称为PAT位树 xff08 Patricia Trie or crit bit tree xff09 xff0c 是一种更节省
  • 使用gomail发送邮件

    概述 为了实现一个邮件验证码功能 xff0c 特意了解了一下go如何发送邮件 本来以为会很麻烦 xff0c 没想到其实很简单 工具类 实现的工具类如下 xff1a span class token keyword package span
  • redis实现消息队列的几种方式及其优劣

    概述 常用的消息队列有 xff0c rabbitMq kafka RocketMq ActiveMq等 这些消息队列需要独立安装部署 xff0c 作为一个中间件来提供服务 xff0c 虽然有着高性能 高可靠的优点 xff0c 但是额外部署这
  • linux系统或者windows WSL安装redis最新版本

    概述 因为windows的最新版本redis已经在16年就停止更新了 xff0c 目前最新的版本只到redis3 xff0c 很多redis新增的特性都无法使用 例如redis5的stream xff0c windows版本就没有 这篇文章
  • 在面对一些亿级流量场景,消息队列届的排头兵kafka是如何保证高性能的呢?

    在面对一些亿级流量场景 xff0c 消息队列届的大哥kafka是如何保证高性能的呢 xff1f Kafka Reactor模型架构 Kafka客户端和服务端通信采取的是NIO的reactor模式 xff0c 它是一种事件驱动模式 react
  • Redis是如何实现高性能的?

    Redis作为应对高并发场景的利器 xff0c 它是如何实现高性能的呢 xff1f IO多路复用 传统对于并发情况 xff0c 假如一个进程不行 xff0c 那搞多个进程不就可以同时处理多个客户端连接了么 xff1f 多进程是可以解决一些并
  • go更新最新版本

    最近go1 18出了泛型 xff0c 趁着周末有时间 xff0c 赶不及要尝尝鲜呢 那如何更新我本地go到最新版本到1 18呢 1 下载安装包 https go dev dl 2 执行安装 点击打开安装程序 xff0c 点击next 选择卸
  • idea、goland泛型语法报错解决|go1.18泛型初体验

    go在1 18正式推出了泛型 xff0c 你是否和博主一样好奇其语法呢 xff1f 快啊来看看吧 1 版本更新 amp 插件更新 go如何更新到最新版本 xff0c 可以查看https www hengyumo cn momoblog de
  • 【统计学习】5分钟了解假设检验中的第一类错误和第二类错误

    5分钟了解假设检验中的第一类错误和第二类错误 假设检验假设检验 xff1a 可能性Type I 第一类错误Type II 第二类错误举个例子总结参考资料 在假设检验中 xff0c 第一类错误和第二类错误是两种可能的错误类型 第一类错误 xf
  • godis 运行原生redis命令

    我们可能会遇到需要运行的某些命令在godis中不存在的情况 xff0c 这个时候我们可以使用其原生的方式运行命令 xff0c 为了方便使用 xff0c 封装了一个方法 xff0c 用于简化这个过程 需要注意的是 xff0c 执行命令的返回结
  • Beego项目打包部署到Linux服务器

    1 打包beego项目 xff0c 项目目录下执行 bee pack be GOOS 61 linux 2 将压缩包传到服务器gopath目录下 xff0c 进行解压 xff0c tar zxvf filename tar gz 3 给执行
  • Python 获取目录及子目录下所有文件 (不包括文件夹),极简

    其实就是想记一下这个华丽的大推导式 xff0c 一行解决 xff1a span class token comment path 是要遍历的根目录 xff0c 34 34 是当前目录 span path span class token o
  • K8S问题-kubectl exec命令无法进入pod环境,处于卡住状态

    问题现象 xff1a kubectl exec it podname n ns bash 命令超时 定位思路 xff1a bash 换成sh检查是否正常 不正常 检查node是否正常 正常 试一下问题pod所在的node上的别的pod是否也
  • 深入理解java虚拟机(JVM)------一篇过

    JVM 一篇过 发展史 xff08 不知道历史的程序员不是一个好秃子 xff09 前身 xff1a Oak语言 xff08 91年开发消费性电子产品 xff09 java me java se java ee java me xff1a 移
  • 运行shell脚本出现Bad Substitution错误

    通过sh xxx sh运行某个shell脚本 xff0c 发现出现Bad Substitution错误 最终发现是shell脚本解释器的问题 xff0c 我采用sh这个命令执行的脚本 xff0c 对sh这个命令 xff0c 查看其属性发现