传播 Bash shell 脚本中的所有参数

2024-01-07

我正在编写一个非常简单的脚本来调用另一个脚本,并且我需要将参数从当前脚本传播到我正在执行的脚本。

例如,我的脚本名称是foo.sh并打电话bar.sh.

foo.sh:

bar $1 $2 $3 $4

在不明确指定每个参数的情况下如何做到这一点?


Use "$@"而不是普通的$@如果您确实希望传递相同的参数。

Observe:

$ cat no_quotes.sh
#!/bin/bash
echo_args.sh $@

$ cat quotes.sh
#!/bin/bash
echo_args.sh "$@"

$ cat echo_args.sh
#!/bin/bash
echo Received: $1
echo Received: $2
echo Received: $3
echo Received: $4

$ ./no_quotes.sh first second
Received: first
Received: second
Received:
Received:

$ ./no_quotes.sh "one quoted arg"
Received: one
Received: quoted
Received: arg
Received:

$ ./quotes.sh first second
Received: first
Received: second
Received:
Received:

$ ./quotes.sh "one quoted arg"
Received: one quoted arg
Received:
Received:
Received:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

传播 Bash shell 脚本中的所有参数 的相关文章

  • shell 脚本:错误的解释器:使用 pwd 时没有这样的文件或目录

    我想用 for 循环遍历目录中的文件 但这出现了 echo bad interpreter No such file or directory code bin bash count 0 dir pwd echo dir FILES ls
  • sed-删除不包含模式的行

    我很惊讶我在 SO 上找不到与此类似的问题 如何使用 sed 删除所有不包含特定模式的行 例如 我有这个文件 cat kitty dog giraffe panda lion tiger 我想要一个 sed 命令 当调用该命令时 它将删除所
  • IFS 分隔一个字符串,如“Hello”,“World”,“this”,“is,一个无聊”,“line”

    我正在尝试解析 csv 文件 但 IFS 遇到一些问题 该文件包含如下行 Hello World this is a boring line 各列用逗号分隔 因此我尝试使用以下代码分解该行 IFS read r a tempArr lt l
  • 如何将命令行参数传递给 rake 任务

    我有一个 rake 任务需要将一个值插入到多个数据库中 我想从命令行或从another耙任务 我怎样才能做到这一点 您可以通过向任务调用添加符号参数来指定 rake 中的形式参数 例如 require rake task my task a
  • 使用Sed查找并替换json字段

    我有一组 json 文件 其中在最后一个键值对之后有需要替换的逗号 RepetitionTime 0 72 TaskName WM Manufacturer Siemens ManufacturerModelName Skyra Magne
  • “grep -q”的意义是什么

    我正在阅读 grep 手册页 并遇到了 q 选项 它告诉 grep 不向标准输出写入任何内容 如果发现任何匹配 即使检测到错误 也立即以零状态退出 我不明白为什么这可能是理想或有用的行为 在一个程序中 其原因似乎是从标准输入读取 处理 写入
  • Bash 脚本:#!/bin/bash 是什么意思? [复制]

    这个问题在这里已经有答案了 在 bash 脚本中 什么是 bin bash第一行是什么意思 UPDATE 有区别吗 bin bash and bin sh 这就是所谓的shebang http en wikipedia org wiki S
  • 如何在bash中列出所有后台pid

    要么我无法正确表达我的搜索 要么答案不容易找到 但我正在尝试找出如何列出我的所有后台任务 PID 例如 到目前为止 我发现要列出我们使用的最后一个 PID 但现在我想列出之前任务的 PID 如果存在 但我找不到如何做到这一点 最终我想列出我
  • 将数组传递给函数名称冲突

    Specs GNU bash 版本 3 1 17 无法升级 Premise 我一直在摆弄数组 我想知道是否有任何方法可以让函数的本地变量与所述函数外部的数组同名 Example 在下面的示例中 我将尝试显示该问题 Working bin b
  • 如何将长选项与 Bash getopts 内置一起使用?

    我正在尝试解析 tempBash getopts 的选项 我这样调用我的脚本 myscript temp foo bar someFile 这是我用来解析选项的代码 while getopts temp shots o option do
  • 如何替换“docker run”命令中的变量值

    我正在使用 bash 脚本并尝试分配指纹值 如下所示 export FINGERPRINT D0 19 C5 80 42 66 56 AC 6F docker run rm i v var run docker sock var run d
  • Python3 http.server:将日志保存到文件中

    我使用Python3 6编写了一个简单的HTTP服务器来重定向所有请求 我写的文件可以找到here https github com kmahyyg learn py3 blob master antiscanhttp py 我可以在 Ub
  • 如何将命令作为参数传递给 ssh [重复]

    这个问题在这里已经有答案了 我的需要是让这个命令起作用 sshpass p XXXX ssh oStrictHostKeyChecking no email protected cdn cgi l email protection sudo
  • 保存和恢复陷阱状态?管理多个陷阱处理程序的简单方法?

    有什么好的方法可以覆盖bash陷阱处理程序不会永久破坏可能已设置或尚未设置的现有处理程序 动态管理任意陷阱例程链怎么样 有没有办法保存陷阱处理程序的当前状态 以便以后可以恢复 在 Bash 中保存和恢复陷阱处理程序状态 我将提交以下堆栈实现
  • 如何使 case 语句匹配数字范围?

    我正在运行一个列号范围为 0 50 的开关案例 现在每个案例都支持离散列号 我观察到它的失败 这是代码 i 10 a 1 b 0 65 if a b then case i in 1 2 5 echo Not OK 9 10 12 echo
  • 从 TypeScript 运行任何 Linux 终端命令?

    有没有办法直接从 TypeScript 类中执行 Linux 终端命令 这个想法是做类似的事情 let myTerminal new LinuxTerminal let terminalResult myTerminal run sudo
  • 使用 Ansible 将二进制文件添加到 PATH

    我正在尝试安装Kiex https github com taylor kiex版本管理器Elixir http elixir lang org install html使用 Ansible 的编程语言 这些是我为此使用的戏剧 name K
  • 如何在 sed 中转义方括号[重复]

    这个问题在这里已经有答案了 我正在使用 grep 和 sed 解析遗留的 C 代码 当尝试替换方括号时 发生了一些奇怪的事情 以下代码替换方括号效果很好 echo xyx xzx xyx sed s g 结果是 xyx xzx xyx 当我
  • 在 Linux 中禁用历史记录 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 要在 Linux 环境中禁用历史记录 我执行了以下命令 export HISTFILESIZE 0 export HISTSIZE 0 u
  • 如何删除最后一次出现模式后的所有行?

    我想删除最后一次出现模式之后的所有行 除了模式本身 file txt honor apple redmi nokia apple samsung lg htc file txt 我想要什么 honor apple redmi nokia a

随机推荐

  • xml.etree.ElementTree.ParseError -- 异常处理未捕获错误

    我正在尝试解析一个 xml 文档 https github com DLibatique texts blob master xml tests cic fam lat xml当我尝试运行我的代码时 有许多未定义的实体会导致 ParseEr
  • 更改 Materialise 框架中复选框的颜色

    我目前正在使用 Materialise 框架 想知道是否可以更改填充复选框的颜色 因为它默认为绿色
  • Thrift 有 IPC 传输实现吗?或低延迟 SOA 解决方案

    我想将 SOA 引入低延迟系统 而无需 TCP 通信的开销 即使在同一台机器上 Thirft 似乎非常适合我 因为我同时拥有 Java 和 php 进程 是否有针对节俭的 IPC 传输实现 或者任何其他可以在这种情况下提供帮助的好主意 您可
  • “复制捆绑资源”中缺少故事板

    I m using base internationalization to internationalize my app Once I used it my storyboards became red in copy bundle r
  • 将 Plist 数据显示到 UItableview 中

    我有一个包含字典和每个字典的字符串数量的 plist 显示到下面的 url 中 plist 中的项目列表有数千个 我需要将这些 plist 数据显示到 UItableview 中 这个怎么做 My Code void viewWillApp
  • 如何使用纯javascript读取图像文件?

    我是 javascript 新手 目前我的一个项目遇到问题 其中包括从网站根文件夹查看图像 这是我当前的代码 var reader new FileReader reader onload function event var dataUr
  • 如何在 ColdFusion ORM 中深度克隆持久实体?

    我有一个持久实体用作模板 Company Locations Departments Employees 换句话说 一个Company包含许多Locations 其中包含许多Departments 其中包含许多Employees 我有一个C
  • TransactionRequiredException 执行更新/删除查询

    我将 hibernate JPA 与 spring 和 mongodb 结合使用 并在 Glassfish 4 0 上运行我的应用程序 我的服务等级是 Component public class Test PersistenceConte
  • 仅删除单个方法的 csrf 令牌 - Laravel

    我正在使用 paytabs 支付网关 api 在该 api 中 必须给出重定向 url 以便一旦交易完成 页面将自动重定向到您给定的重定向 url 该 url 是 GET url 但由于 api 的响应是 POST 类型 因此我无法使用 g
  • 如何修复“kex_exchange_identification:读取:对等方重置连接”?

    我想复制数据scp在使用 PRIVATE KEY 的 GitLab 管道中 错误是 kex exchange identification read Connection reset by peer Connection reset by
  • Android中SAX解析问题

    您好 我有一个 Android 应用程序 我想从 xml 文件获取数据 我已经使用了 SAX 解析器 但是从这里给出的这种类型的 xml 文件获取数据存在一些问题 所以请给我解决方案 使用SAX解析来解析以下xml文件 我的 xml 文件在
  • 基于查找 df 中其他两列之间最接近的值返回值

    我的问题几乎相同this one https stackoverflow com questions 41496276 return rows establishing a closest value to in r除非不是寻找列值和固定数
  • 写入 VpnService 输出流没有响应

    我的应用程序实现 VpnService 来拦截网络流量并提供量身定制的响应 目标是处理特定地址的流量 并丢弃其他请求 目前 我成功解析传入请求并构建和发送响应 然而 问题在于这些响应并不是作为对原始请求的实际响应而到达的 使用套接字连接进行
  • GridBagLayout 如何将组件向北推

    这是我的代码 public class HomeTopPanel extends JPanel BUTTONS private final JButton myAccountButton new JButton My Account pri
  • java.lang.NoSuchMethodError: org.mockito.Answers.get()Lorg/mockito/stubbing/Answer;

    我正在尝试将 spring boot 版本从 2 2 4 升级到 2 6 6 我能够成功编译应用程序并且能够启动应用程序 但是当我尝试运行测试时 所有测试都因一个错误而失败 java lang NoSuchMethodError org m
  • 在 Threejs 中使用鼠标滚轮更改相机位置.z

    有谁知道如何改变camera position z 用鼠标滚轮 相机 并制作滚动效果 当我尝试使用变量时 它不起作用 TrackballControls or OrbitControls示例中可以使用启用缩放 以及旋转和平移 参见示例htt
  • matplotlib 复制图形并应用更改

    我正在制作一系列具有相同布局的人物 由于布局需要多行代码 我试图复制第一次完成的代码 只更改一些内容 例如标记 如果可能的话 数据虽然我知道它可能会使事情变得复杂 因为它可能需要重新缩放和这样在 plt show 命令结束时 就会显示原始图
  • 进行预测时 conv2d_transpose 取决于 batch_size

    我目前有一个在张量流中实现的神经网络 但我在训练后进行预测时遇到问题 因为我有 conv2d transpose 操作 并且这些操作的形状取决于批量大小 我有一个需要 output shape 作为参数的层 def deconvLayer
  • 带计时器的 .NET Windows 服务停止响应

    我有一个用 C 编写的 Windows 服务 它内部有一个计时器 可以定期触发一些功能 所以我的服务的骨架 public partial class ArchiveService ServiceBase Timer tickTack int
  • 传播 Bash shell 脚本中的所有参数

    我正在编写一个非常简单的脚本来调用另一个脚本 并且我需要将参数从当前脚本传播到我正在执行的脚本 例如 我的脚本名称是foo sh并打电话bar sh foo sh bar 1 2 3 4 在不明确指定每个参数的情况下如何做到这一点 Use