95得票4回答
如何执行存储在变量中的命令?

如何正确调用存储在变量中的某个命令? 1和2之间是否有任何区别?#!/bin/sh cmd="ls -la $APPROOTDIR | grep exception" #1 $cmd #2 eval "$cmd"

18得票3回答
提取点之前的子字符串

我试图在Bash中从第一个字符串中减去点号(.)之前的部分。例如: 1.2.3 -> 1 11.4.1 -> 11 我根据文档使用了以下命令: s=4.5.0 echo "${s%.*}" 但它输出的是4.5而不是4,我不明白为什么。为什么会这样?

17得票2回答
Bash:如何使用运算符参数扩展${parameter@operator}?

我尝试了很多方法并搜索了很多,但使用 ${parameter@operator} 时一直无法使其正常工作。我找到的只是指向相同文档的更多链接。因此,一个带有实际示例的适当答案应该对理解很有帮助。 文档说: ${parameter@operator} 扩展可以是参数值的转换...

12得票3回答
如何在Fish shell中提取子字符串?

我得到了以下变量:set location "America/New_York" 想要仅显示斜杆/前面的部分,使用fish shell语法。 期望结果 America Bash等效命令 在bash中,我只是使用了参数扩展:location="America/New_York" ...

11得票2回答
这个 shell 语法的机制是什么:${1:-$(</dev/stdin)}

最近我发现了一种非常巧妙的语法,可以在创建 bash 函数时接受参数或来自 STDIN 的流(即可被管道传输)。表面上我理解这里正在发生什么,但我想对实际的 机制 进行更详细的解释。 以下是该语法(按照标题): ${1:-$(&lt;/dev/stdin)} 在这个语境下,你可以这样使用它:l...

10得票2回答
在csh中简单地向可能尚不存在的环境变量追加内容的方法

我试图将路径添加到我的PERL5LIB环境变量的末尾,但我不确定这个变量是否总是存在。如果它不存在,我想简单地将它初始化为我试图添加的值。 下面是一个可行的示例:if ( $?PERL5LIB ) then setenv PERL5LIB ${PERL5LIB}:/some/othe...

10得票2回答
如何使用纯Bash创建URL友好的slug?

我需要一个纯bash解决方案来“slugify”变量,而且不像我的那么丑陋。 slugify:将字符串转换为小写,并缩短到63个字节,除了0-9和a-z之外的所有字符都替换为“-”。不要有前导/尾随“-”。结果是适合在URL主机名和域名中使用的字符串。输入很可能是一系列单词,其中包含不需要...

8得票2回答
双尖角符号^^的参数扩展

在下面的代码块中,第3和4行代码如何被评估? for f in "${CT_LIB_DIR}/scripts/build/debug/"*.sh; do _f="$(basename "${f}" .sh)" _f="${_f#???-}" __f="CT_DEBUG...

7得票2回答
Bash脚本中的正则表达式匹配行尾$无法工作

我正在尝试在bash脚本中使用简单的正则表达式语句,以匹配并替换单词的结尾。以下是我尝试做的事情。 wordh &gt; word:’ 以下是我正在使用的代码。 #!/bin/bash STAT=${STAT/h$/:’} 我不太熟悉bash脚本,但是我认为它与$有关,因为它被用来...

7得票5回答
如何记住 ${var%} 和 ${var#} 是从哪一端起作用的?(这是一个关于IT技术的问题)

我在记忆使用哪个参数扩展符号${var%subst}或者${var#subst}用于从字符串的前面还是后面删除时遇到了困难。例如: $ var=/a/b/c $ echo dirname=${var#/*} filename=${var%%*/} dirname=a/b/c filename...