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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在bash脚本中使用命令行参数?相关的知识,希望对你有一定的参考价值。

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

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

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

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

但它不起作用。

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

答案

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

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

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

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

另一答案

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

# method 1
CD=`pwd`

# method 2
CD=$(pwd)

以上是关于如何在bash脚本中使用命令行参数?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Bash 中更改命令行参数?

使用bash脚本,编写一个实现将命令行的多个参数逆序输出的程序。

Bash 脚本无法识别命令行参数? [复制]

将命令行参数转换为 Bash 中的数组

解析/传递命令行参数到bash脚本 - “$ @”和“$ *”之间有什么区别?

带有命令行参数的 C++ 的 Makefile 和 Bash 脚本