在RedHat Linux脚本中使用cd

时间:2019-01-10 01:55:45

标签: linux shell

我有一个Shell脚本,可以对HTML文件进行sed更改。但是,cd命令似乎不起作用...即使我使用UNIX / Linux已经很久了,但我确信这是一个新手问题。请参阅下面的代码。

但是,如果我取出for循环并使其独立存在(包括chmod命令),然后将cd命令放在单独的脚本中,并在一行中调用循环脚本,例如:

cd dir
/home/me/dothisscript
cd ../nextdir
/home/me/dothisscript
cd ../nextdir
/home/me/dothisscript
etc... etc...

有效...

下面的这个没有。

cd 1950
for i in *.html
do
   sed 's%TITLE%title%g' $i > t
   mv t $i
done
for i in *.html
do
   sed 's% - Removethis.com</title>%</title>%g' $i > t
   mv t $i
done
for i in *.html
do
   sed 's%<title>Removethis.com %<title>%g' $i > t
   mv t $i
done
for i in *.html
do
   sed 's%</title>% - Addthis.com</title>%g' $i > t
   mv t $i
done
exec chmod +x *.html
cd ..
cd 1960
for i in *.html
do
   sed 's%TITLE%title%g' $i > t
   mv t $i
done
for i in *.html
do
   sed 's% - Removethis.com</title>%</title>%g' $i > t
   mv t $i
done
for i in *.html
do
   sed 's%<title>Removethis.com %<title>%g' $i > t
   mv t $i
done
for i in *.html
do
   sed 's%</title>% - Addthis.com</title>%g' $i > t
   mv t $i
done
exec chmod +x *.html
cd ..
cd 1967
etc... etc...

1 个答案:

答案 0 :(得分:0)

更改

exec chmod +x *.html

公正

chmod +x *.html

exec将Shell进程替换为指定程序,因此脚本的其余部分将永远不会执行。