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

问题描述 投票:0回答:2

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

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

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

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

但它不起作用。

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

bash find
2个回答
4
投票

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

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

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

通常,除非有特殊原因,否则应始终引用变量。


1
投票

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

# method 1
CD=`pwd`

# method 2
CD=$(pwd)
© www.soinside.com 2019 - 2024. All rights reserved.