GAWK 脚本解释

GAWK 脚本解释

谁能解释一下这个脚本每一行的作用是什么?我无法运行它,因为我认为语法不正确。

#! /bin/bash
v=`echo $@|gawk '{print $NF}'`
如果[-d $v];那么
对于 $@;do 中的 v2
如果测试 $2 != $v;那么
在 $v2 $v/$v2
rm $v2
完毕

答案1

其中大部分是 shell,这是不正确的,因为第一个 if 语句中缺少空格。还

  • 第一个 if 语句缺乏平衡fi
  • 应该$@被引用"$@"
  • 大概$2应该是$v2

无论如何,这个-d测试是可疑的,因为 gawk 应该打印一个数字(不是目录名称)。还是你可以正在测试以数字命名的目录...

正如评论中所建议的,如果您进行了这些更正,脚本将尝试删除与脚本的最后一个参数不同的所有内容,并链接到最终参数指定的目录下的那些已删除文件。 (仅仅使用mv会更简单)。

这是建议的固定脚本:

#! /bin/bash
v=`echo "$@"|gawk '{print $NF}'`
if [ -d $v ];then
  for v2 in "$@";do
    if test $v2 != $v;then
      ln $v2 $v/$v2
      rm $v2
    fi
  done
fi

相关内容