脚本功能主要是切换到给定的绝对路径,利用sed替换绝对路径下一个文本的内容
由于切换路径的时候没有切换过去,导致sed命令报错,报错截图如下:
错误脚本内容如下:
#!/bin/bash PATH=/home/wynne/change_name cd $PATH sed -i "s/third:3333/third:4444/g" original
第二行和第三行的定义PATH,以及cd切换目录,没有执行成功,所以导致第四行的sed命令报错:未找到命令
未切换成功路径原因:PATH是linux系统已经定义好的一个环境变量
在命令行下看一下$PATH的内容:
所以我们在shell脚本里定义时,不能用PATH这个名字,我们换成PATH1
正确脚本内容如下:
#!/bin/bash PATH1=/home/wynne/change_name cd $PATH1 sed -i "s/third:3333/third:4444/g" original
回车执行成功结果:(执行成功没有显示)
执行完后,替换的文本结果:(可以看到,原本是3333的地方,换成了4444,是由于sed的用法)
原【original中内容】:
sed用法:
sed -i “s/原内容/替换后内容/g”
参数:
-i是在原文件中修改内容,测试过程中可以不加-i;
g是强制替换所有匹配内容,如果没有g,默认替换匹配到的第一个内容。