问题标签 [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 - 如何在文件名中的模式之后剥离所有内容?
编辑:我只需要剥离.gz
这些已经被压缩了。我需要project.tar
输出我有以下剥离第一部分。
bash - bash parameter expansion and combining pattern-matching operators
Is it possible to use parameter expansion to combine pattern-matching operators?
For example, given the variable test=/home/archie/.vimrc.bak
.
I can delete the longest match from the beginning of $test
with echo ${test##*/}
:
I can also delete the shortest match from the end of $test
with echo ${test%.*}
:
Is there a way to combine the two pattern-matching operators to output .vimrc
?
bash - 使用 shell 参数扩展的 Bash 模式匹配“或”
我正在尝试将此正则表达式替换统一为一个命令,例如:
但是,最后一个选项不起作用。我也尝试过\|
,但它似乎不起作用,而且我在 bash 手册和文档中没有发现任何有用的东西。我需要使用${}
而不是 sed,即使使用它可以解决我的问题。
bash - 带转义的 Shell 脚本变量扩展
以下脚本:
输出:
我想得到的输出是:
如何使用单个参数func
而不是多个参数来实现此输出?
进行编辑以解决简化问题
bash - 用纯 bash 创建 URL 友好的 slug?
我追求一个纯粹的 bash 解决方案来“slugify”一个变量,这不像我的那么难看。
slugify:小写,缩短为 63 字节,除 0-9 和 az 以外的所有内容都替换为 -。没有前导/尾随 -。结果是一个适合在 URL 主机名和域名中使用的字符串。输入很可能是一系列带有不需要字符的单词,例如:
'Effrafax_mUKwT'uP7(Garkbit<\1}@NJ"RJ"Hactar*S;-H%x.?oLazlarl(=Zss@c9?qick.:?BZarquonelW{x>g@'k'
其中一个蛞蝓看起来像:'effrafax-mukwt-up7-garkbit-1-njrjhactar-shx-olazlarl-zss-c9-q'
另外为什么不${next//^-|-$}
去掉前缀和后缀'-'
?其他建议?
bash - 传递给 SSH 的命令中的某些输出丢失
我正在尝试使用 ssh 命令 ssh 到服务器并运行useradd
我传递给它的命令。大多数情况下它似乎运行正常(没有产生错误),但/etc/shadow
文件中的散列密码缺少盐(我相信这是缺少的部分。)。
我不确定引用是否不正确。但是在服务器上手动运行这个命令工作正常,所以我假设它的扩展搞砸了。?
下面的命令在 Bash 脚本中运行...
命令:
*当我在 perl one-liner 中转义双引号时,我得到了错误:
在 -e 第 1 行的 EOF 之前的任何地方都找不到字符串终止符 '"'。
用法:useradd [选项] LOGIN
知道我在这里做错了什么吗?
environment-variables - 附加到 csh 中可能尚不存在的环境变量的简单方法
我正在尝试将路径附加到PERL5LIB
环境变量的末尾,但我不确定这个变量是否会一直存在。如果它不存在,我想简单地将它初始化为我试图附加的值。
这是一个有效的示例:
虽然这行得通,但它看起来仍然很笨拙,因为我基本上必须写两次同一行。我想做的是提出一种更有效的单线解决方案(可能使用参数扩展)。
有没有办法把它合并到一条线上?(或者几行不涉及多次写出“/some/other/path”)
例如,这可以在 bash 中完成:
arrays - Bash:基于另一个数组动态声明数组,同时保持元素结构
我有一个可以以不同“口味”运行的脚本。每种风味的逻辑几乎相同(除了它使用的变量的值)。所以我决定使用命名空间模式(即<flavorID>_<variable>
)为每种风格声明所有变量。我试图根据用于运行脚本的风格在运行时声明一个通用变量。换句话说,我想根据CL 参数声明变量<variable>
并使其等于。有关说明,请参阅下面的脚本。<flavorID>_<variable>
flavorID
PS 我意识到我只循环一个变量,但我实际的真实示例有多个我需要声明的数组。
堆栈示例.sh:
使用上述脚本的示例输出:
python - 从 python 启动一个带有参数的 exe
我正在尝试调用应用程序并将文本文件作为参数传递。文本文件有说明。我尝试在打开记事本时传递一个参数,但无法让它工作。这是我正在尝试的代码:
如何将参数传递给 startfile 以便它打开特定文件?当我尝试将两者都放在引号中时,它仍然出现错误。
bash - 条件中不带冒号的参数扩展(默认值为空字符串)
我知道 和 之间的区别${var:-word}
,${var-word}
但我看不出在这种情况下使用默认值的目的:
- 为什么那里需要一个空的默认值?
- 是否与与其他外壳(zsh)的兼容性有关?