问题标签 [sh]

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 投票
5 回答
4063 浏览

bash - autoconf 使用 sh,我需要 SHELL=BASH,如何强制 autoconf 使用 bash?

我正在运行 autoconf 并将 SHELL 设置为“/bin/sh”。这会产生巨大的问题。如何强制 SHELL 成为 autoconf 的“/bin/bash”?

我试图让它在 osx 上运行,它在 linux 上运行。Linux 使用 SHELL=/bin/bash。osx 默认为 /bin/sh。

0 投票
7 回答
62661 浏览

shell - 如何比较 Bourne Shell 中的字符串?

我需要比较shell中的字符串:

但显然“*”在 Shell 中不起作用。有没有办法做到这一点?

0 投票
27 回答
2626233 浏览

string - 如何检查字符串是否包含Bash中的子字符串

我在 Bash 中有一个字符串:

如何测试它是否包含另一个字符串?

??我不知名的接线员在哪里。我使用echoandgrep吗?

这看起来有点笨拙。

0 投票
5 回答
208447 浏览

bash - 如何在脚本本身内重定向整个 shell 脚本的输出?

是否可以将 Bourne shell 脚本的所有输出重定向到某个地方,但在脚本本身内部使用 shell 命令?

重定向单个命令的输出很容易,但我想要更像这样的东西:

含义:如果脚本以非交互方式运行(例如,cron),则将所有内容的输出保存到文件中。如果从 shell 以交互方式运行,让输出像往常一样转到标准输出。

我想为通常由 FreeBSD 定期实用程序运行的脚本执行此操作。这是日常运行的一部分,我通常不关心每天在电子邮件中看到它,所以我没有发送它。但是,如果这个特定脚本中的某些东西失败了,那对我来说很重要,我希望能够捕获并通过电子邮件发送日常工作的这一部分的输出。

更新:Joshua 的回答很准确,但我也想围绕整个脚本保存和恢复 stdout 和 stderr,这样做是这样的:

0 投票
4 回答
4095 浏览

java - 在Unix中编译和运行java(来自Windows)

好的,这适用于 Windows。我的 Java 应用程序正在正常运行

但是,当我在 Unix 上做同样的事情时,我得到了这个错误:ojdbc14.jar: not found

我究竟做错了什么?我知道“;” 告诉我的外壳 ojdbc14.jar 是一个新命令,但我不知道如何解决这个问题。

0 投票
1 回答
5876 浏览

shell - 在 bourne shell 的用户定义函数中使用 getopts

是否可以将命令行参数从 bourne 脚本中传递到函数中,以允许 getopts 处理它们。

我的脚本的其余部分很好地打包成函数,但看起来我必须将参数处理移动到主逻辑中。

下面是现在的写法,但是不行:

是否有可能以可以读取脚本参数的方式定义函数?这可以通过其他方式完成吗?我喜欢 getopts 的功能,但看起来在这种情况下我将不得不牺牲代码的美感来获得它。

0 投票
9 回答
14212 浏览

shell - 在 /bin/sh 中并行迭代两个列表

我有两个长度相等的列表,各个项目中没有空格:

我想并行迭代这两个列表,将 a 与 1 配对,将 b 与 2 配对,等等:

我正在尝试支持现代便携式 Bourne shell,因此 Bash/ksh 数组不可用。在紧要关头对 awk 进行炮击是可以接受的,但如果可能的话,我宁愿将其保留在纯 sh 中。

感谢您提供的任何指示!

0 投票
8 回答
361219 浏览

bash - 从 UNIX shell 脚本中的列表中选择唯一或不同的值

我有一个 ksh 脚本,它返回一长串值,换行符分隔,我只想查看唯一/不同的值。有可能做到这一点吗?

例如,假设我的输出是目录中的文件后缀:

我想查看如下列表:

0 投票
3 回答
13318 浏览

bash - Shell 脚本中的 For 循环 - 在 csv 文件中添加断线

我正在尝试for在 shell 脚本中使用循环。

我正在从文本文件执行命令。我希望执行每个命令 10 次并将一些统计信息插入到 csv 文件中。完成该命令后,我想开始下一个,但在执行 10 次的第一个命令之后在 CSV 文件中放置一个换行符。

以下是否正确:

谢谢大家的帮助

更新

它正在正确执行循环,但我无法在每个命令执行 10 次后添加换行符。

0 投票
1 回答
433 浏览

shell - 如何将命令的输出捕获到 Bourne shell 中的文件描述符?

在 Bourne shell 中捕获命令输出的标准方法是使用以下$()语法:

但是,对于具有大量输出的命令,这需要 shell 将整个内容作为一个长字符串分配内存。我更愿意找到与 Unix C 函数在道德上等效的东西popen,以获取我可以从中获取的新文件描述符read

这甚至可能吗?