我有一个 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...
最佳答案
改变
exec chmod +x *.html
只是
chmod +x *.html
exec
用指定的程序替换 shell 进程,因此脚本的其余部分永远不会执行。
关于linux - 在 RedHat Linux 脚本中使用 cd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54120958/