小编Lin*_*ner的帖子

使用子shell的开销是多少?

希望这个问题不是太笼统。我对 shell 脚本很陌生,我来自计算机体系结构/非脚本编程背景。我在我工作的脚本中注意到,很少通过围绕整个脚本创建子 shell 来编写脚本。在我正在编写的脚本中,当我可以用一个子 shell 包围它时,我就是这样,因为它可以防止它与调用我的其他脚本混淆(以防万一)。由于与此方法相关的一些开销,这不是一种常见做法吗?我很难在网上找到这个。

例子:

#!/bin/bash
( #Start of subshell
echo "Some stuff here"
) #End of subshell
Run Code Online (Sandbox Code Playgroud)

linux performance bash fedora subshell

8
推荐指数
1
解决办法
2356
查看次数

使用 bash 命令行组合 IP 字符串

我有一个返回以下内容的命令:

 id1="172" id2="17" id3="136" id4="5" id5="0" />
 id1="172" id2="17" id3="128" id4="2" id5="0" />
 id1="172" id2="17" id3="128" id4="4" id5="0" />
 id1="172" id2="17" id3="128" id4="6" id5="0" />
Run Code Online (Sandbox Code Playgroud)

组合的前四个 ID 代表一个 IP 地址(例如172.17.136.5第一行)。

我想将上述内容通过管道传递给解析命令,该命令将输出一个字符串,其中所有 IP 地址以空格分隔。

对于上面的例子:

myVariable="172.17.136.5 172.17.128.2 172.17.128.4 172.17.128.6"
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

bash shell-script text-processing

5
推荐指数
1
解决办法
388
查看次数

“服务网络重启”超时

我有一个在 fedora 22 上运行的脚本,在那里我正在重新启动服务网络作为故障排除调用的一部分service network restart。我想检查该命令是否需要太长时间才能执行。如果时间太长,我想输出一条消息“重新启动网络服务时出错”。否则我想继续脚本。

networking bash fedora shell-script services

3
推荐指数
1
解决办法
1151
查看次数

在 Bash 中将字符串提取到第一个数字

我想找到一种简单的方法来提取字符串的一部分,直到第一个数字出现的位置(可能使用正则表达式而不是逐个字符遍历字符串)。我正在使用它来从rpm -qa没有版本的情况下提取包名称。例如:

Parsing: perl-Text-ParseWords-3.30-1.fc22.i686
Result: perl-Text-ParseWords
Run Code Online (Sandbox Code Playgroud)

bash string shell-script

2
推荐指数
1
解决办法
2782
查看次数

使用 bash 仅提取包名称的版本部分

我想从包名中只提取包的版本。假设我有一个var包含包名称的变量(例如:)var="nfs-utils-1.2.6-6.fc17.i686.rpm"。提取的字符串将是1.2.6-6. 用于解析的方法可以是任何东西(regex、awk、cut)。

编辑:在上面的例子中,我实际上想提取 1.2.6

bash rpm version shell-script

2
推荐指数
2
解决办法
7291
查看次数