如何在bash脚本中使用命令行参数?

时间:2017-12-19 22:13:25

标签: bash find

我很难用find命令编写简单的脚本。我想在某个目录中删除给定大小的文件。我希望能够指定文件的名称(如Efficiency_ *)和要删除的文件的大小。我试过以下脚本:

#!/bin/bash
CD=($pwd)
find $CD -name $1 -size $2 -delete

我从正确的目录运行它,如下所示:

/path/to/directory/script.sh 'Efficiency_*' '-500c'

但它不起作用。

这样做的正确方法是什么?

2 个答案:

答案 0 :(得分:4)

您不需要CD变量,只需使用.来引用当前目录。

其他变量需要引用。否则,shell将展开通配符,而不是将其传递给find

#!/bin/bash
find . -name "$1" -size "$2" -delete

一般情况下,除非有特殊原因,否则应始终引用变量。

答案 1 :(得分:1)

问题是你给CD变量的价值。在Bash脚本中,您有两种不同的方法可以将程序调用的输出分配给变量...

# method 1
CD=`pwd`

# method 2
CD=$(pwd)