问题标签 [dash-shell]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1690 浏览

bash - 如何将 shell 更改为 bash

与标准默认 bash 相比,我想在 dash shell 上执行一些脚本。这是一个例子(test.sh)

这次执行给了我

作为输出。我期待 '/bin/dash' 作为输出。

如果这是错误的,有人可以让我知道我如何在 dash 上实际工作。谢谢

0 投票
1 回答
861 浏览

unix - sh 或 dash 中的变量变量

以下代码在bash.

输出是

但我需要把它写在shNOT中bash。如果我在sh其中执行相同的命令会给我错误

这是由于${!x}. 我查阅了手册,sh其中没有说明有关此类参数扩展的任何内容。所以sh不支持我相信。如果不是如何使用变量变量sh

0 投票
1 回答
603 浏览

shell - 如何在dash shell中通过函数返回值分配多个变量

我使用全新的“bash”用法。

如何将这些转换为破折号?(其实就是busybox的shell)

我使用以下几行来替换read name age < <(func)

但是,我想知道有没有更好的解决方案?

0 投票
2 回答
84940 浏览

linux - 使用 sh 运行 bash 脚本

我有 bash 脚本,它需要 bash。

另一个人尝试运行它

它失败了,因为 sh 在他的发行版中是 dash 的符号链接。

我有一个使用包装脚本的想法:

目标是在系统中通过 sh 和 bash 运行 .sh 脚本,该系统具有到破折号的符号链接。

0 投票
1 回答
740 浏览

shell - Dash -x 失败并出现错误替换错误

我正在尝试学习如何编写可移植的 shell 脚本,为此我开始将我的个人实用程序从 bash 迁移到 sh(我的系统上的破折号)。但是,当我尝试在调试模式下运行脚本时,我在所有情况下都会遇到错误$ dash -x script

例如,在这个脚本上:

如果我将它运行为: $ dash script,我会得到'hi'字符串,但是如果我将它运行为:$ dash -x script或者如果我set -x在 echo 之前添加命令:

它失败并出现错误:

script.sh:3:sc​​ript.sh:替换错误

这使得调试我的脚本变得非常困难。我正在运行带有破折号0.5.7-2ubuntu2的 ubuntu 12.04

0 投票
5 回答
5863 浏览

bash - 检查 shell 变量是否为空的便携式方法

在 shell 脚本中测试变量是否为空/未定义的可移植和规范方法是什么?它应该在所有类似 sh 的 shell 中工作。我现在做的是这样的:

而对于反向,当变量不为空/未定义时做一些事情:

虽然这些适用于我现在编写的脚本,但我想知道一种方法,它可以在任何合理兼容的sh类 shell中工作,即使在比具有 GNU 用户空间和bashdash的 Linux PC 更晦涩的环境中也是如此。

我正在寻找在不同 shell 环境中经验丰富并且知道不同做事方式的陷阱的人的“专家答案”,而不是像“应该有效”这样的意见。

0 投票
1 回答
661 浏览

bash - 在 bash 和 dash 中可靠地打印带有换行符的字符串

我有以下脚本:

这两个命令在 bash 和 dash 中都不起作用:

因为我无法确定 /bin/sh 是指向 bash 还是 dash,也无法确定 /bin/bash 或 /bin/dash 是否存在,所以这是一个真正的问题。我也不能拆分字符串并为换行添加一个“echo”,因为我需要将带有换行符的字符串通过管道传输到命令中。

有什么方法可以打印一个在所有 shell 中都有效的换行符字符串?

0 投票
2 回答
566 浏览

bash - Dash shell 无法在没有双引号的情况下执行给定的命令

我在带有 dash shell 的 Ubuntu 环境中遇到了一些示例代码的问题。

当在 Ubuntu Server OS 的 dash shell 中执行以下代码块时,我得到了如下所示的输出。

输出1:

但是,如果我运行以下修改后的代码,那么我会得到正确的输出,如下所示。

输出2:

0 投票
2 回答
728 浏览

bash - 子外壳内的循环控制

我想使用子shell来确保环境更改不会影响循环中的不同迭代,但我不确定是否可以在子shell中使用循环控制语句(break, continue):

循环外部的值A不受内部发生的任何事情的影响,这没关系。但是是否允许continue在子外壳内部使用,还是应该将其移到外部?作为记录,它按其编写的方式工作,但也许这是一个不可靠的副作用。

0 投票
2 回答
65 浏览

shell - 从破折号文件中删除不重要的文本

我有一个包含太多行的文件。

它的构造如下:

等等。

我怎样才能把重要的部分保存在一个新文件中?我正在使用 Macintosh 的仪表板终端