循环的linux bash脚本错误处理

循环的linux bash脚本错误处理,linux,bash,shell,Linux,Bash,Shell,我很难写出bash脚本。我正在编写一个脚本来复制多个文件,然后使用sed命令(例如=a/x)更改一个内部单词,但它不起作用 #!/bin/bash for (( i = 20151122; i <=20151131; i++)) do for (( j = 20151122; j <=20151131; j++)) do cp ~/lecture_2015_11_21.stream.smil "lecture_$i.stream.smil"; cd

我很难写出bash脚本。我正在编写一个脚本来复制多个文件,然后使用
sed
命令(例如=
a/x
)更改一个内部单词,但它不起作用

#!/bin/bash 
for (( i = 20151122; i <=20151131; i++)) 
do 
  for (( j = 20151122; j <=20151131; j++)) 
  do 
    cp ~/lecture_2015_11_21.stream.smil "lecture_$i.stream.smil"; 
    cd ~/ 
    sed -i 's/$i/$j/g' lecture$j.stream.smil 
  done 
done
#/bin/bash

对于((i=20151122;i对于sed,要从bash获取值,必须使用双引号,而不是单引号(主要是bash引用问题):

错:

sed -i 's/$i/$j/g' lecture$j.stream.smil 
对:

sed -i "s/$i/$j/g" lecture$j.stream.smil 
在这种情况下,您可以同时忽略它们:

 sed -i s/$i/$j/g lecture$j.stream.smil 

请在您的问题中说明您尝试了什么,以及(预期的)输出。见Hi Mak,你需要以更好的方式表达你的问题。此外,你在一个shell脚本问题上标记了javascript。你的代码是什么,错误是什么?这是我第一次使用stackoverflow,所以我现在正在学习写,我的问题是我想复制目录中的多个文件,然后我想重命名某个单词或名称文件中的日期我的代码是:-#!/bin/bash for((i=20151122;i)它与
sed
无关。这是引用字符串在bash中的工作方式。@KarolyHorvath:我知道。我想这是我写的,但添加了一些额外的词来强调它。