问题标签 [bash]

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 回答
2891 浏览

bash - 我可以将任意命令块传递给 bash 函数吗?

我正在研究一个 bash 脚本,如果存在特定文件,我需要有条件地执行一些事情。这种情况多次发生,所以我抽象了以下函数:

现在,当我想执行此操作时,我会执行以下操作:

问题是,我很烦我定义了两件事:一组要执行的命令的函数,然后调用我的第一个函数。

我想以干净的方式将这组命令(通常是 2 个或更多)直接传递给“conditional-do”,但我不知道这是如何实现的(或者是否可能)......有人有吗有任何想法吗?

请注意,我需要它是一个可读的解决方案......否则我宁愿坚持我所拥有的。

0 投票
8 回答
45654 浏览

bash - 是否可以在 bash 脚本中检测 32 位和 64 位?

我正在编写一个 bash 脚本以自动方式处理一些安装...我有可能以 32 位或 64 位二进制文​​件获取一个这样的程序...是否可以从 bash 检测机器架构,以便我可以选择正确的二进制文件?

这将适用于 Ubuntu 机器。

0 投票
20 回答
140371 浏览

bash - 计算 bash 中的(非空白)代码行数

在 Bash 中,我如何计算项目中非空白代码行的数量?

0 投票
6 回答
39231 浏览

bash - 如何使用shell脚本比较两个不同目录中同名的文件

在继续使用 SVN 之前,我曾经通过简单地保留一个/develop/目录并在那里编辑和测试文件,然后将它们移动到该/main/目录来管理我的项目。当我决定迁移到 SVN 时,我需要确保目录确实是同步的。

那么,编写 shell 脚本 [ bash ] 以递归比较两个不同目录中同名文件的好方法是什么?

注意:上面使用的目录名称仅用于示例。我不建议将您的代码存储在顶层:)。

0 投票
11 回答
6157 浏览

linux - Bash 输出重定向的问题

我试图删除文件中除最后一行以外的所有行,但以下命令不起作用,尽管 file.txt 不为空。

为什么会这样?

0 投票
7 回答
103675 浏览

bash - Bash 变量范围

请向我解释为什么最后一个echo语句是空白的?我希望XCODE在 while 循环中将其增加到 1 的值:

我尝试使用以下语句而不是++XCODE方法

它也不会在 while 语句之外打印。我想我在这里遗漏了一些关于变量范围的东西,但是 ol' 手册页没有向我展示。

0 投票
14 回答
407601 浏览

string - 如何从 Bash 中的路径字符串中删除文件后缀和路径部分?

给定一个字符串文件路径,例如/foo/fizzbuzz.bar,我将如何使用 bash 仅提取fizzbuzz所述字符串的一部分?

0 投票
6 回答
4658 浏览

bash - 跨多个目录同步文件修改时间

我有一台带有两个目录树的计算机 A。第一个目录包含可以追溯到几年前的原始 mod 日期。第二个目录是第一个目录的副本,其中包含一些附加文件。有第二台计算机包含一个目录树,该目录树与计算机 A 上的第二个目录相同(新的修改时间和附加文件)。如何更新两台机器上两个较新目录中的文件,以使文件上的修改时间与原始文件相同?请注意,这些目录树大约为 10 GB,因此解决方案必须包括一些仅将日期信息发送到第二台计算机的方法。

0 投票
6 回答
9728 浏览

bash - 计算文件中令牌出现的次数

我有一个服务器访问日志,带有每个 http 请求的时间戳,我想获得每秒请求数的计数。使用sed, 和cut -c,到目前为止,我已经设法将文件缩减为时间戳,例如:

2008 年
9 月 22 日 20:00:21 +0000 2008 年 9 月22 日 20:00:22 +0000
2008 年 9 月 22 日 20:00:22 +0000 2008 年
9 月 22 日 20:00:22 +0000
22- 2008 年 9 月 20:00:24 +0000
2008 年 9 月 22 日 20:00:24 +0000

我想得到的是每个唯一时间戳在文件中出现的次数。例如,对于上面的示例,我希望得到如下所示的输出:

2008 年 9 月 22 日 20:00:21 +0000:1
2008 年 9 月 22 日 20:00:22 +0000:3 2008 年
9 月 22 日 20:00:24 +0000:2

我曾经sort -u将时间戳列表过滤为唯一令牌列表,希望我可以使用 grep 之类的

但这只会产生全部匹配行中的一行。

我知道这可以在一行中完成,将几个实用程序串在一起......但我想不出哪个。有人知道吗?

0 投票
8 回答
19534 浏览

linux - 如何在循环中运行命令,直到在标准输出中看到一些字符串?

我敢肯定,perl、ruby、bash 有一些微不足道的单行代码,可以让我在循环中运行命令,直到我在 stdout 中观察到一些字符串,然后停止。理想情况下,我也想捕获标准输出,但如果它要控制台,那可能就足够了。

目前有问题的特定环境是 RedHat Linux,但有时在 Mac 上也需要同样的东西。因此,通用和 *nixy 将是最好的。不关心 Windows - 大概一个 *nixy 的东西可以在 cygwin 下工作。

更新:请注意,“观察一些字符串”是指“stdout 包含一些字符串”而不是“stdout 是一些字符串”。