parameter-expansion相关内容
调用存储在变量中的某些命令的正确方式是什么? %1和%2之间有什么区别吗? #!/bin/sh cmd="ls -la $APPROOTDIR | grep exception" #1 $cmd #2 eval "$cmd" 推荐答案 Unix Shell在执行每行输入之前对它们进行一系列转换。对于大多数shell,它看起来像这样(取自Bash man page):
..
假设我将一些数据读入 Bash 数组: $ IFS=" " read -a arr
..
假设我将一些数据读入 Bash 数组: $ IFS=" " read -a arr
..
如何在不产生另一个进程的情况下从 Zsh 中的字符串末尾删除任何和所有空格? 查看Zsh 中的扩展文档(即部分14.3 参数扩展和14.8.1 Glob Operators)—也可以通过 $ man zshexpn—我写了以下代码: ${${var##[:space:]##}%%[:space:]##} 但 Zsh 似乎无法识别 [:space:] glob 运算符.根据我对文档中以下语
..
调用存储在变量中的某些命令的正确方法是什么? 1 和 2 之间有什么区别吗? #!/bin/shcmd="ls -la $APPROOTDIR | grep 异常"#1$cmd#2评估“$cmd" 解决方案 Unix shell 在执行之前对每一行输入进行一系列转换.对于大多数 shell,它看起来像这样(取自 bash 手册页): 初始分词 大括号扩展 波浪号扩展 参数、变量
..
我有一个像这样的文件名列表: REG_2016120200hourly_d01_20161202_00_00_00.nc 我要提取这个名字并放入一个变量: 1)日期20161202 用于/path/*中的文件;做filename = $(基本名称-"$ file")日期= $ {文件名:4:8}回声$日期完毕 这有效,脚本给了我 20161202 ,我不知道为什么 2
..
假设我将一些数据读入Bash数组: $ IFS=" " read -a arr
..
我偶然发现了这篇文章其中用户 chepner 在他的答案中提出了\j的用法(如 num_jobs="\j" echo ${num_jobs@P} 有人能启发我这里发生了什么吗?例如. 为什么${\j@P}无法正常工作 @P到底在做什么? 解决方案 就像任何参数扩展一样,您必须提供参数名称,而不是任意字符串. \j不是参数名称;这是您要从参数扩展中获取 的文本. 扩展参数
..
我已经在Google上搜索并尝试了很多东西,但是从来没有任何东西可以与$ {parameter @ operator}一起使用.我发现的只是指向相同文档的更多链接.因此,我认为适当地举一些实际例子将有助于其理解. 文档说: $ {parameter @ operator} 扩展是对 参数的值或有关参数本身的信息,取决于 运算符的值.每个运算符都是一个字母: Q 扩展名是一
..
要调试脚本,我想在每个输出的开头添加内部变量$ FUNCNAME和$ LINENO,这样我就知道输出在哪个函数和行号上出现. foo(){ local bar="something" echo "$FUNCNAME $LINENO: I just set bar to $bar" } 但是由于会有许多调试输出,所以如果我可以做以下事情,它会更干净: foo(){
..