我有一个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...
答案 0 :(得分:0)
更改
exec chmod +x *.html
公正
chmod +x *.html
exec
将Shell进程替换为指定程序,因此脚本的其余部分将永远不会执行。