问题标签 [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.
bash - 为什么参数扩展在 Makefile 中不起作用?
我有下一条规则Makefile
:
当我运行时:
但:
为什么在第一种情况下不回显默认值? asdf
UPD
指定的重复项讲述了如何使用分配的变量Makefile
。它没有回答为什么不使用默认值
看看这个修改过的例子:
然后运行:
正如你所看到的,当我使用${TABLE:-asdf}
它时只返回空字符串。但我希望在第一次运行mytable
和第二次运行asdf
中得到回显
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?
windows - 如何将名称中带有空格的文件传递给命令 FC?
我有一个包装命令的 diff 脚本,FC
因此我只需在其上放置两个文件:
它工作正常,但如果其中一个文件的名称中有空格......例如,我的文件路径是C:\Users\joH1\Desktop\file_with a_space.txt
and C:\Users\joH1\Desktop\file_2.txt
,我会收到错误(对不起本地化):
因此,文件名被拆分为两个单独的参数,即使路径被引用。
为了找出它的来源,我在脚本中添加了几行:
我得到了echo
s 的正确输出(尽管 args 没有被引用!):
我什至尝试dir
确保echo
没有合并拆分参数,并且得到了正确的结果(文件被识别并列出 => 名称未拆分)。
所以; 我想FC
应该归咎于此。
有没有办法告诉它不要拆分文件名?(应该像引号一样?)
我想要一种与拖放兼容的方式,如果可能的话,这不是Rename your files without spaces ......
提前致谢!
bash - 使用参数扩展设置默认变量 vs if/else test -z
因此,传统上,当我编写带有参数标志的 bash 脚本时,我会使用这样的基本测试语句来实现默认值
今天我遇到了更高级的参数扩展,它们似乎做同样的事情
这两种方法如何比较?它们的优点/缺点是什么?
编辑:修正了评论中指出的一些错别字
bash - ${foo//(/\\(} 不使用 extglobs 启用
我正在尝试使用参数扩展来转义括号。虽然如果我extglob
启用了,以下代码不起作用:
file\(2\)
当我像这样禁用extglob
或明确转义左括号时,它会正确输出:
为什么extglob
会这样?我在那里看不到任何extglob
模式。此外,右括号在没有反斜杠的情况下也能正常工作。
在tutorialspoint.com上在线测试,并在本地使用:
bash - 如何逃避 bash 参数扩展(当“!”后跟字母是参数时)
我有一个需要使用字符串参数调用的 bash 脚本,该字符串以感叹号“!”开头 (这在我正在做的事情中是强制性的):
因为参数扩展,bash报错:
有什么办法可以逃脱“!” 产生这个?传递此类参数的另一种方法?
sh - 为什么参数扩展不起作用?
我正在写一个脚本,介于两者之间。我正在尝试将存储在变量中的字符串的所有逗号替换为空格。基本上该变量dpoint
包含逗号分隔的浮点数,例如0.0,4.2,3.6666
我dpoint=${dpoint//,/ }
用来替换所有逗号。
这是我得到的确切错误。
我在这里读到了这个问题 。我发现自己没有做错任何事..(肯定是我在做...无法弄清楚)。
修复这个错误已经一个小时了。最后我把它贴在这里我到底做错了什么?
更新:我正在使用破折号外壳
bash - 这是bash变量实例化中的某种正则表达式吗?
这两个分配(i 和 C 省略第一个无效)有什么作用?它是变量的某种正则表达式吗?我尝试使用 bash,但到目前为止,在使用"${i//\\/\\\\}"
or实例化它们之后,我的字符串的输出没有任何变化"\"${i//\"/\\\"}\""
bash - 在第三次出现下划线后从字符串中提取子字符串
我在 Linux shell 中有一个字符串。该字符串中包含下划线。
我想从字符串中提取一个子字符串。
我想在第三次出现下划线后提取子字符串,从字符串的末尾开始计算。
结果
如您所见,string_name="${file_name#*_*_*_}"
无法正常工作。
期望的结果:
我怎样才能达到我想要的结果?
bash - 使用 xargs 重命名一系列文件
我想重命名某个目录中选择的几个文件find
,然后使用xargs
和mv
重命名文件,使用参数扩展。然而,它没有工作......
示例:
结果:
工作解决方案:
尽管我终于找到了解决问题的方法,但我仍然想知道为什么第一种find
+xargs
方法不起作用,因为我认为第二种方法对于类似的任务不是很通用。
谢谢!