在尝试调试作业提交脚本时,我最终将错误范围缩小到:
[testuser@bes ~]$ var=( 1 foo1*bar4 echo 1*4=4 )
[testuser@bes ~]$ echo "${var[@]}"
1 foo1*bar4 echo 1*4=4
[testuser@bes ~]$ cd /data/testuser/jobs/example/a16162/
[testuser@bes a16162]$ var=( 1 foo1*bar4 echo 1*4=4 )
[testuser@bes a16162]$ echo "${var[@]}"
1 foo1-bar4 foo1*bar4 echo 1*4=4
[testuser@bes a16162]$
这是一个新的 bash 会话的未删减记录。有人知道那个是如何工作的吗?这是我以前从未听说过的 bash 的一些古老功能,还是只是一个非常奇怪的错误?
版本(是的,我知道它已经过时了):
GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
Linux bes 2.6.18-194.11.3.el5 #1 SMP Mon Aug 30 16:19:16 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux
编辑:这是用于需要处理用户传递的数组的东西,我宁愿使用这种方法,也不愿使用三元组相当尴尬的awk
黑客。它们是微不足道的“提取元素 2”之类的东西,这就是为什么使用数组看起来更好的原因。