我有一个bash脚本不能正常工作,我是这类代码的新手。任何建议或帮助都会很好。
我试图通过putty平台用新用户更改旧用户的电子邮件地址。但是并不是所有的目录都有特定的文件,我认为if语句可能有问题。以下是我尝试使用的脚本:

#!/bin/bash
#set -x

for dirs in *
do
  echo $dirs
  cd $dirs/
  if [ -d "Seadont"]
  then
   sed -i 's/USER1/USER2/g'
  ls
  fi
done

我的结果不正确。

最佳答案

试试这个:

#!/bin/bash
#set -x

for dirs in * ;do
  echo $dirs
  if [ -d "Seadont"] ;then
     sed -i.bak 's/USER1/USER2/g' $dirs
   fi
done

请注意,如果“$dirs”上有空格,它将不起作用。如果有,我可以提出更好的解决方案,但我需要知道当前目录。

10-07 23:39