parameter-expansion相关内容

如何执行存储在变量中的命令?

调用存储在变量中的某些命令的正确方式是什么? %1和%2之间有什么区别吗? #!/bin/sh cmd="ls -la $APPROOTDIR | grep exception" #1 $cmd #2 eval "$cmd" 推荐答案 Unix Shell在执行每行输入之前对它们进行一系列转换。对于大多数shell,它看起来像这样(取自Bash man page): ..
发布时间:2022-02-20 20:55:59 服务器开发

从 Zsh 中的字符串末尾修剪空格

如何在不产生另一个进程的情况下从 Zsh 中的字符串末尾删除任何和所有空格? 查看Zsh 中的扩展文档(即部分14.3 参数扩展和14.8.1 Glob Operators)—也可以通过 $ man zshexpn—我写了以下代码: ${${var##[:space:]##}%%[:space:]##} 但 Zsh 似乎无法识别 [:space:] glob 运算符.根据我对文档中以下语 ..
发布时间:2021-09-24 20:29:09 其他开发

如何执行存储在变量中的命令?

调用存储在变量中的某些命令的正确方法是什么? 1 和 2 之间有什么区别吗? #!/bin/shcmd="ls -la $APPROOTDIR | grep 异常"#1$cmd#2评估“$cmd" 解决方案 Unix shell 在执行之前对每一行输入进行一系列转换.对于大多数 shell,它看起来像这样(取自 bash 手册页): 初始分词 大括号扩展 波浪号扩展 参数、变量 ..
发布时间:2021-07-23 21:05:04 服务器开发

Bash 4.4提示转义当前正在运行的作业数

我偶然发现了这篇文章其中用户 chepner 在他的答案中提出了\j的用法(如 num_jobs="\j" echo ${num_jobs@P} 有人能启发我这里发生了什么吗?例如. 为什么${\j@P}无法正常工作 @P到底在做什么? 解决方案 就像任何参数扩展一样,您必须提供参数名称,而不是任意字符串. \j不是参数名称;这是您要从参数扩展中获取 的文本. 扩展参数 ..

Bash:如何使用运算符参数扩展$ {parameter @ operator}?

我已经在Google上搜索并尝试了很多东西,但是从来没有任何东西可以与$ {parameter @ operator}一起使用.我发现的只是指向相同文档的更多链接.因此,我认为适当地举一些实际例子将有助于其理解. 文档说: $ {parameter @ operator} 扩展是对 参数的值或有关参数本身的信息,取决于 运算符的值.每个运算符都是一个字母: Q 扩展名是一 ..
发布时间:2020-05-21 19:14:35 其他开发

在Bash中,有没有一种方法可以将变量双引号两次扩展?

要调试脚本,我想在每个输出的开头添加内部变量$ FUNCNAME和$ LINENO,这样我就知道输出在哪个函数和行号上出现. foo(){ local bar="something" echo "$FUNCNAME $LINENO: I just set bar to $bar" } 但是由于会有许多调试输出,所以如果我可以做以下事情,它会更干净: foo(){ ..