问题标签 [variable-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 - bash - 参数替换直到换行
我有一个 .txt 文件,其中包含如下文本:
使用参数扩展如何删除包含特殊标签 {remove} 的所有行?
我试过这个,但它不起作用!
谢谢
macos - 使用 pandoc 定义函数的 Bash 扩展错误
我使用这里的建议来设置别名以使用命令将降价转换为man
样式输出,
我不断收到错误:pandoc: !*: openFile: does not exist (No such file or directory)
但是如果我这样做的话,命令词很好pandoc -s -f markdown -t man README.md | groff -T utf8 -man | less
这个 bash 扩展语法有问题吗?
bash - 当 POSIX 规范说有必要避免歧义时,它是什么意思?
回复此评论时:
现在我得到了两个“:”是独立的,这就是为什么我找不到任何关于它们的文件的原因。在这种情况下需要第一个吗?
我第一次注意到规范中的这一段:
在前面显示的参数扩展中,在格式中使用 <colon> 将导致对未设置或 null 的参数进行测试;<冒号> 的省略将导致对仅未设置的参数进行测试。如果参数是'#'并且省略了冒号,应用程序应确保指定单词(这是避免字符串长度扩展产生歧义所必需的)。
我在 bash 参考手册中看到了匹配的解释:
当不执行子字符串扩展时,使用下面描述的形式(例如,':-'),Bash 测试未设置或为空的参数。省略冒号会导致仅对未设置的参数进行测试。换句话说,如果包含冒号,则运算符测试两个参数的存在以及它的值是否不为空;如果省略冒号,则运算符仅测试是否存在。
之前,我了解这些扩展的冒号版本有什么区别。
刚才让我感到困惑的是规范中的这句话:
如果参数是'#'并且省略了冒号,应用程序应确保指定单词(这是避免字符串长度扩展产生歧义所必需的)。
word
如果未指定,我不明白这里可能有什么歧义。
扩展符号在 shell 变量名称中均无效,因此它们不可能以单字符变量名称开头。如果他们可以使用 a parameter
of ,#
那么在没有冒号的情况下总是会模棱两可,因为您永远无法判断是${#+foo}
指变量的长度foo
还是 的替代扩展#
等。
我在这里想念什么?什么歧义需要确保word
存在?(我的意思是没有word
在这个扩展中显然没有用,但那不是一回事。)
python - 在 Python 中扩展一个数字块
在我问之前,我做了一些谷歌搜索,但无法找到答案。
我的场景是这样的:一个数字列表被传递给脚本,要么通过文件以 \n 分隔,要么通过命令行 arg 以逗号分隔。这些数字可以是单数,也可以是块,如下所示:
文件:
命令行参数:
两者最终都在同一个列表[]中。我想扩展 7-10 或 20-25 块(显然在实际脚本中这些数字会有所不同)并将它们附加到一个新列表中,最终列表如下所示:
我知道像 .append(range(7,10)) 这样的东西可以在这里帮助我,但我似乎无法找出原始 list[] 的哪些元素需要扩展。
所以,我的问题是:给定一个列表[]:
我怎样才能得到一个列表[]:
batch-file - Windows CMD 批处理:FOR /R 与 DelayedExpansion
在我的桌面上,有一个名为"test"的文件夹。这个文件夹里面有两个文件,“file1.txt”和“file2.txt”。
看看这个简单的批处理脚本:
如您所料,它输出以下内容:
现在看看这个变化:
我希望它的输出没有什么不同。但是,这里是:
看起来它在行中!test!
被扩展ECHO !test!
,但不是FOR /R !test!
在行中,变得只是!test!
. 因为那当然不是有效路径,所以 FOR /R 循环永远不会迭代。
为什么是这样?我错过了什么?
sh - 在终端中居中文本
我编写了以下脚本,将一个名称打印到终端的中心。在最后一个命令中,当我使用数字时,一切正常。但是,当我使用变量 x_center 和 y_center 时,我遇到了麻烦......
forms - 简单表单发布字段特定字段值
我使用 simpleforms 作为订阅类的订阅表单。该表单使用 use_as 并将电子邮件发送给发件人作为确认。
我已经编辑了电子邮件树枝模板,并添加了有关订阅者下一步应该做什么的更多信息。
我的问题是是否可以在说明文本中设置特定的字段值。到目前为止,我还不能正确地做到这一点。我只想在此说明文本中显示“名称:”字段,以便每个收到此电子邮件的发件人都会收到他自己的名字。
电子邮件模板中使用的 for 循环是
{% for value in form %} {{ value }} {% endfor %}
我正在寻找要设置的特定字段,而不是表单的所有值。
bash - mv 不识别通配符/变量扩展
我正在尝试将一系列目录中的所有文件移动到它们各自文件夹的子目录中。有很多文件夹需要发生这种情况,所以我把它放在一个循环中。为了这个例子,我减少了这个数字。
${location[files]}
, ${t}
, 和${sub}
都是目录,因此结构看起来类似于:
等等等等。这个想法是文件/files/a/
将被移动到files/a/sub_directory1
.
当我在脚本中运行它时,它似乎正确地扩展了变量,但显然不是 mv 的正确方法。我明白了
当我手动执行相同的命令时:
它按预期工作。
通配符是按字面意思对待的吗?
bash - 省略传递空的引用参数
我在 bash 脚本中有一些变量,可能包含文件名或未设置。它们的内容应该作为附加参数传递给程序。但是,当变量未设置时,这会留下一个空参数。
没有引号,它工作得很好,因为附加参数被简单地省略了。但是由于变量可能包含空格,因此必须在此处引用它们。
我知道我可以简单地将整行包装在空虚测试中。
但是对每个变量进行一次测试会导致一个巨大而复杂的决策树。
有没有更紧凑的解决方案?bash 可以省略带引号的空变量吗?
bash - bash paste:基于通配符循环遍历文件对,生成单独的输出文件
我试图让粘贴命令循环遍历文件对,将它们粘贴在一起并将每个文件作为唯一文件输出。我已经尝试了很多东西,这里有一些:
没有错误,空输出文件
输出:
我想我一定遗漏了一些关于如何使用 $ 的非常基本的东西,但我整晚都在谷歌上搜索,但无济于事。
我的整个代码,对于上下文,虽然我不明白为什么前面的行会对此产生任何影响。