2015-04-22 53 views
-2

任何人都可以建议我如何确保shell脚本中的某个特定命令不影响从中调用它的脚本?例如,在我的情况下,我用一些其他词,用“sed”命令替换所有特定词的出现。但我不希望这样做改变原来的脚本。Sed命令正在对原始脚本进行更改

+0

'sed'确实与'-i'选项中,发生的变化,所以你可能只是忽略该选项假设是你在做什么。请向我们展示您的脚本。 –

+0

您正在对运行sed命令的脚本执行sed操作? –

+2

可能通过编写更好,更懒惰的代码,明确地命名您希望它操作的文件,而不是过度使用通配符和其他可能会偶尔匹配您不希望它们匹配的事物的泛化... – twalberg

回答

0

在脚本中使用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 
+0

hurrrrah gr8 !!感谢朋友:)。它很好地工作 – user3867483