Bash Sed命令正在对原始脚本进行更改
有人能建议我如何确保shell脚本中的特定命令不会影响调用它的脚本吗?例如,在我的例子中,我使用“sed”命令将某个特定单词的所有匹配项替换为其他单词。但我不想改变原来的剧本 在脚本中使用Bash Sed命令正在对原始脚本进行更改,bash,Bash,有人能建议我如何确保shell脚本中的特定命令不会影响调用它的脚本吗?例如,在我的例子中,我使用“sed”命令将某个特定单词的所有匹配项替换为其他单词。但我不想改变原来的剧本 在脚本中使用basename$0。 例如,对于当前目录: #!/bin/bash FILES="*" CURRENT=`basename $0` for f in $FILES do if [ -f $f ] && [ $f != $CURRENT ] then #some sed acti
basename$0
。
例如,对于当前目录:
#!/bin/bash
FILES="*"
CURRENT=`basename $0`
for f in $FILES
do
if [ -f $f ] && [ $f != $CURRENT ]
then
#some sed action with file
fi
done
sed
使用-i
选项进行就地更改,因此假设您正在执行此操作,您可以忽略该选项。请向我们展示您的脚本。您正在让sed对运行sed命令的脚本进行操作?可能是通过编写更好、更少懒惰的代码,明确指定您希望它对哪些文件进行操作,而不是过度使用通配符和其他可能偶尔匹配您不希望它们匹配的东西的泛化…您是否为一堆文件调用sed?确保您的脚本不是其中之一chmod-w
或grep-v您的脚本
都是糟糕的解决方法。非常感谢大家!