问题标签 [parameter-expansion]

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 投票
0 回答
353 浏览

bash - 为什么参数扩展在 Makefile 中不起作用?

我有下一条规则Makefile

当我运行时:

但:

为什么在第一种情况下不回显默认值? asdf

UPD

指定的重复项讲述了如何使用分配的变量Makefile。它没有回答为什么不使用默认值

看看这个修改过的例子:

然后运行:

正如你所看到的,当我使用${TABLE:-asdf}它时只返回空字符串。但我希望在第一次运行mytable和第二次运行asdf中得到回显

0 投票
3 回答
2643 浏览

linux - In Bash, is there a way to expand variables twice in double quotes?

For debugging my scripts, I would like to add the internal variables $FUNCNAME and $LINENO at the beginning of each of my outputs, so I know what function and line number the output occurs on.

But since there will be many debugging outputs, it would be cleaner if I could do something like the following:

But the above literally outputs: "$FUNCNAME $LINENO: I just set bar to something" I think it does this because double quotes only expands variables inside once.

Is there a syntactically clean way to expand variables twice in the same line?

0 投票
1 回答
244 浏览

windows - 如何将名称中带有空格的文件传递给命令 FC?

我有一个包装命令的 diff 脚本,FC因此我只需在其上放置两个文件:

它工作正常,但如果其中一个文件的名称中有空格......例如,我的文件路径是C:\Users\joH1\Desktop\file_with a_space.txtand C:\Users\joH1\Desktop\file_2.txt,我会收到错误(对不起本地化):

因此,文件名被拆分为两个单独的参数,即使路径被引用

为了找出它的来源,我在脚本中添加了几行:

我得到了echos 的正确输出(尽管 args 没有被引用!):

我什至尝试dir确保echo没有合并拆分参数,并且得到了正确的结果(文件被识别并列出 => 名称未拆分)。

所以; 我想FC应该归咎于此。

有没有办法告诉它不要拆分文件名?(应该像引号一样?)
我想要一种与拖放兼容的方式,如果可能的话,这不是Rename your files without spaces ......

提前致谢!

0 投票
1 回答
117 浏览

bash - 使用参数扩展设置默认变量 vs if/else test -z

因此,传统上,当我编写带有参数标志的 bash 脚本时,我会使用这样的基本测试语句来实现默认值

今天我遇到了更高级的参数扩展,它们似乎做同样的事情

这两种方法如何比较?它们的优点/缺点是什么?

编辑:修正了评论中指出的一些错别字

0 投票
2 回答
91 浏览

bash - ${foo//(/\\(} 不使用 extglobs 启用

我正在尝试使用参数扩展来转义括号。虽然如果我extglob启用了,以下代码不起作用:

file\(2\)当我像这样禁用extglob或明确转义左括号时,它会正确输出:


为什么extglob会这样?我在那里看不到任何extglob模式。此外,右括号在没有反斜杠的情况下也能正常工作。

在tutorialspoint.com上在线测试,并在本地使用:

0 投票
0 回答
22 浏览

bash - 如何逃避 bash 参数扩展(当“!”后跟字母是参数时)

我有一个需要使用字符串参数调用的 bash 脚本,该字符串以感叹号“!”开头 (这在我正在做的事情中是强制性的):

因为参数扩展,bash报错:

有什么办法可以逃脱“!” 产生这个?传递此类参数的另一种方法?

0 投票
0 回答
35 浏览

sh - 为什么参数扩展不起作用?

我正在写一个脚本,介于两者之间。我正在尝试将存储在变量中的字符串的所有逗号替换为空格。基本上该变量dpoint包含逗号分隔的浮点数,例如0.0,4.2,3.6666

dpoint=${dpoint//,/ }用来替换所有逗号。

这是我得到的确切错误。

我在这里读到了这个问题 。我发现自己没有做错任何事..(肯定是我在做...无法弄清楚)。

问题截图

修复这个错误已经一个小时了。最后我把它贴在这里我到底做错了什么?

更新:我正在使用破折号外壳

0 投票
2 回答
69 浏览

bash - 这是bash变量实例化中的某种正则表达式吗?

这两个分配(i 和 C 省略第一个无效)有什么作用?它是变量的某种正则表达式吗?我尝试使用 bash,但到目前为止,在使用"${i//\\/\\\\}"or实例化它们之后,我的字符串的输出没有任何变化"\"${i//\"/\\\"}\""

0 投票
6 回答
1077 浏览

bash - 在第三次出现下划线后从字符串中提取子字符串

我在 Linux shell 中有一个字符串。该字符串中包含下划线。

我想从字符串中提取一个子字符串。

我想在第三次出现下划线后提取子字符串,从字符串的末尾开始计算。

结果

如您所见,string_name="${file_name#*_*_*_}"无法正常工作。

期望的结果:

我怎样才能达到我想要的结果?

0 投票
1 回答
1132 浏览

bash - 使用 xargs 重命名一系列文件

我想重命名某个目录中选择的几个文件find,然后使用xargsmv重命名文件,使用参数扩展。然而,它没有工作......

示例

结果

工作解决方案

尽管我终于找到了解决问题的方法,但我仍然想知道为什么第一种find+xargs方法不起作用,因为我认为第二种方法对于类似的任务不是很通用。

谢谢!