如何使用Unix在IF语句中查找具有相同basename的所有文件

时间:2018-02-11 23:25:40

标签: unix if-statement

在下面的代码中,如果用户输入' safe_rm'我有一个if语句试图退出程序。作为一个论点。但是,它不会考虑其他目录中具有相同名称的文件。我怎样才能改进代码呢?

for i in $*
 do
  if [[  'safe_rm' = $i ]]
  then
   echo "Attempting to delete safe_rm - operation aborted"
  exit
 fi
done

2 个答案:

答案 0 :(得分:0)

使用safe_rm搜索参数中是否存在grep

以下代码适用于我,并在其他目录中记录safe_rm的文件名:

for i in $*
 do
  if echo $i | grep -q 'safe_rm'
  then
   echo "Attempting to delete safe_rm - operation aborted"
  exit
 fi
done

答案 1 :(得分:0)

使用basename命令

for i in $*
do
    if [[  'safe_rm' = $(basename $i) ]]
    then
       echo "Attempting to delete safe_rm - operation aborted"
       exit
     fi
done