我想复制Linux bash
文件中的变量指定的文件。
这是不起作用的:
molecules = (1butene E2butene)
for molecule in ${molecules[*]}
do
### some stuff (works)
formchk $molecule.chk $molecule.fchk
### cp doesn't work
cp $molecule.com ${molecule}_scan.com
done
有任何想法吗?
编辑:当我删除空格“ =”时它也不起作用。 cp不会引发任何错误,但是我没有得到另一个名为Molecular_scan.com的文件
最佳答案
我可以看到的主要问题是作业中=
周围的空格:
molecules=(1butene E2butene)
for molecule in "${molecules[@]}"
do
### some stuff (works)
formchk "$molecule.chk" "$molecule.fchk"
### cp doesn't work
cp "$molecule.com" "${molecule}_scan.com"
done
我更改的其他内容是使用
@
而不是*
,以将数组扩展为循环的单词列表。我还为所有变量扩展添加了引号,尽管在此特定情况下没有必要,但这是一个很好的习惯。关于linux - 带有变量的Linux cp,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41610101/