花括号中的变量不起作用

詹科

我有一个包含国家/地区文件夹的目录,其中可能存在名称翻倍的文件夹:

 en_en es_es fr_fr de_de

我编写了一个脚本来删除重复项:

 for code in en de es fr it nl pt tr; do
   if [[ -d $code_$code ]]; then
     mv "${code}_${code}" "${code}"
   fi
 end

但这是行不通的-if永远不会执行下面的代码(我也尝试在其中放置代码echo)。但是,以下工作原理:

 if [[ -d es_es ]]; then
   echo "foo"
 end

我正在使用(log)bash 3.2。

fedorqui'停止伤害'

因为$code_$code正在寻找code_+ code,同时要检查code+ _+ code为此,请使用花括号:${code}_${code}

for code in en de es fr it nl pt tr; do
   if [[ -d "${code}_${code}" ]]; then # <---- here (note also it is good to quote)
     mv "${code}_${code}" "${code}"
   fi
end

发生这种情况是因为_可以在变量名中出现,因此在调用它们时使用大括号来确切定义名称。

参见另一个示例:

$ this=3
$ that=4
$ echo $this_$that
4
$ echo ${this}_${that}
3_4
$ this_=5
$ echo $this_$that
54

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在放置在花括号中的“while”循环中分配变量不起作用

来自分类Dev

Ansible变量插值在方括号中不起作用

来自分类Dev

为什么花括号和双引号的这种组合在bash中不起作用?

来自分类Dev

尝试从花括号中提取数据但不起作用

来自分类Dev

变量在圆括号内不起作用

来自分类Dev

括号扩展在脚本中不起作用

来自分类Dev

为什么Styles.Render在花括号内不起作用?

来自分类Dev

SED代替花括号:“ s / \} //”工作正常,但“ s / \ {//”不起作用

来自分类Dev

括号扩展不起作用

来自分类Dev

花括号在JavaScript中起什么作用?

来自分类Dev

茉莉花注入不起作用

来自分类Dev

茉莉花注入不起作用

来自分类Dev

javascript变量在Highchart中不起作用

来自分类Dev

会话变量在Grails中不起作用

来自分类Dev

在JSon中添加变量不起作用

来自分类Dev

numpy中的变量分配不起作用?

来自分类Dev

引用变量在jQuery中不起作用

来自分类Dev

累积变量中的值不起作用

来自分类Dev

在文件中设置变量不起作用

来自分类Dev

在JSon中添加变量不起作用

来自分类Dev

在PHP中迭代变量不起作用

来自分类Dev

数组中的变量不起作用

来自分类Dev

变量,NSInteger在Xcode中不起作用

来自分类Dev

jQuery insertafter()在$(this)变量中不起作用

来自分类Dev

URL中的Java变量不起作用

来自分类Dev

变量在 shell 脚本中不起作用

来自分类Dev

ngFor 中的引用变量不起作用

来自分类Dev

返回变量在 Python 中不起作用

来自分类Dev

SQL的括号表示法在Microsoft Access中不起作用