我想复制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/

10-09 08:59