如何在Linux中获取命令行参数 (linux获取命令行参数)

在Linux中,命令行参数是指在运行脚本或可执行文件时在命令行上提供的参数。这些参数可以用于将输入传递到脚本或应用程序中,从而影响其行为和输出。本文将介绍。

1. 参数的基本结构

命令行参数有两种基本类型:选项和参数。选项是以破折号开始的单个字母或单词,通常用于控制应用程序的行为。参数是与选项关联的值。

选项和参数可以以任何顺序出现,并且可能存在重复。例如,以下命令行参数中包含了两个选项和三个参数:

“`

./my_script.sh -h –verbose input.txt output.txt input.txt

“`

其中,“-h”是一个短选项,“–verbose”是一个长选项。“input.txt”和“output.txt”是两个参数,而第三个“input.txt”是另一个参数。

2. 获取选项

在Linux中,可以使用getopt命令来获取选项。getopt是一个标准的Linux命令,用于解析命令行参数。getopt命令的基本语法如下:

“`

getopt [options] [–] optstring [arguments]

“`

其中,optstring是一个包含所有可用选项的字符串。

例如,以下命令行参数将会打印出选项的使用方式:

“`

./my_script.sh -h –verbose input.txt output.txt input.txt

“`

以下是代码实现:

“`bash

#!/bin/bash

# 解析选项

options=$(getopt -o hv –long help,verbose — “$@”)

if [ $? -ne 0 ]; then

exit 1

fi

eval set — “$options”

while true; do

case “$1” in

-h|–help)

echo “Usage: my_script.sh [-h|–help] [-v|–verbose] input_file output_file”

exit 0

;;

-v|–verbose)

verbose=true

shift

;;

–)

shift

break

;;

*)

break

;;

esac

done

# 打印参数

echo “Input file: $1”

echo “Output file: $2”

“`

在上述脚本中,getopt命令解析了选项“-h”和“–verbose”。在while循环中,使用case语句处理每个选项,如果选项存在,则将变量$verbose设置为true,并将选项从$@变量中移除。–符号用于分离选项和参数。

脚本打印出了输入和输出文件的参数。

3. 获取参数

要获取参数,可以使用$1、$2、$3等变量来引用它们。例如,在上面的示例中,参数“input.txt”可通过$1变量进行访问,参数“output.txt”可通过$2变量进行访问。

如果需要获取所有参数,可以使用特殊变量$@。例如,以下脚本将会打印出传递到它的所有参数:

“`bash

#!/bin/bash

for arg in “$@”; do

echo “$arg”

done

“`

在这个例子中,for循环迭代所有的参数,并将它们打印出来。$@变量表示所有的参数。

4. 获取参数个数

要获取传递给脚本或应用程序的参数的数量,可以使用特殊变量$#。

例如,以下脚本将会打印出传递给它的参数数量:

“`bash

#!/bin/bash

echo “Number of arguments: $#”

“`

在这个例子中,echo命令将打印出传递给脚本的参数的数量。$#变量表示参数的数量。

5.

在Linux中,获取命令行参数是一个非常常见的任务。通过使用getopt命令解析选项并将参数存储在变量中,可以轻松地访问它们。使用特殊变量$1、$2、$3等引用单个参数,使用特殊变量$@引用所有参数,使用特殊变量$#获得参数的数量。

希望本文能够帮助您更轻松地在Linux中获取命令行参数,并让您的工作更加高效和快速。

相关问题拓展阅读:

Linux常用命令

就是list的缩写,通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限)看目录信息等等

常用参数搭配:

实例:

(changeDirectory),命令语法:cd 。说明:切丛滚纯换当前目录至dirName

实例:

查看当前工作目录路径

实例:

创建文件夹

实例:

删除一个目录中的一个或多个文件或目录,如果没有使用- r选项,则rm不会删除目录。如果使用rm 来删除文件,通常仍可以将该文件恢复原状

rm 文件…

常用参数搭配:

实例:

删除空目录,一个目录被删除之前必须是空的。(注意,rm -r dir 命令可以代替rmdir,但是很危险,万一它突然就不是空的咧?),另外删除某目录时必须具有对父目录的写权限。

实例:

rmdir -p watch/avi  删掉avi目录,watch目录就空掉了,那还看什么?所以干脆把watch目录一起删掉,眼不见为不净嘛。

mv命令是move的缩写,可以用来移动文件或者将文件改名,是Linux系统下常用的命令,经常用来备份文件或者目录。

命令功能:

视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链至该文件的链接也将丢失。

命令参数:

实例:

将源文件复制至目标文件,或将多个源文件复制至目标目录。

注意:命令行复制,如果目标文件已经存在会提示是否覆盖,而在shell脚本中,如果不加-i参数,则不会提示,而是直接覆盖!

命令参数:

实例:

cat主要有三大功能:

命令参数:

实例:

功能类似于cat, more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示

命令参数:

常用操作命令:

实例:

less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却备腊不能向后移动,而且 less 在查看之前不会加载整个文件。

命令参数:

实例:

head 用来显示档渗咐案的开头至标准输出中,默认head命令打印其相应文件的开头10行。

常用参数:

实例:

从指定点开始将文件写到标准输出。使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不断刷新,使你看到最新的文件内容。

常用参数:

实例:

用于改变linux系统文件或目录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。

每一文件或目录的访问权限都有三组,每组用三位表示,分别为文件属主的读、写和执行权限;与属主同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。可使用ls -l test.txt查找。

以文件log2023.log为例:

-rw-r–r– 1 root root 296K:03 log2023.log

之一列共有10个位置,之一个字符指定了文件类型。在通常意义上,一个目录也是一个文件。如果之一个字符是横线,表示是一个非目录的文件。如果是d,表示是一个目录。从第二个字符开始到第十个共9个字符,3个字符一组,分别表示了3组用户对文件或者目录的权限。权限字符用横线代表空许可,r代表只读,w代表写,x代表可执行。

常用参数:

权限范围:

权限代号:

实例:

tar命令是类Linux中比价常用的解压与压缩命令。

常用参数:

-c: 建立压缩档案

-x:解压

-t:查看内容

-r:向压缩归档文件末尾追加文件

-u:更新原压缩包中的文件

这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。

下面的参数-f是必须的

常见解压/压缩命令

chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。

常用参数:

实例:

显示磁盘空间使用情况。获取硬盘被占用了多少空间,目前还剩下多少空间等信息,如果没有文件名被指定,则所有当前被挂载的文件系统的可用空间将被显示。默认情况下,磁盘空间将以 1KB 为单位进行显示,除非环境变量 POSIX_CORRECT 被指定,那样将以512字节为单位进行显示。

常用参数:

实例:

du命令也是查看使用空间的,但是与df命令不同的是,du能看到的文件只是一些当前存在的,没有被删除的,他计算的大小就是当前他认为存在的所有文件大小的累加和。du命令是对文件和目录磁盘使用的空间的查看。

常用参数:

实例:

ln命令用于将一个文件创建链接,链接分为软链接和硬链接,命令默认使用硬链接。当在不同目录需要该文件时,就不需要为每一个目录创建同样的文件,通过ln创建的链接(link)减少磁盘占用量。

软链接:

硬链接:

需要注意:

常用参数:

实例:

显示或设定系统的日期与时间

命令参数:

实例:

可以用户显示公历(阳历)日历,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份。

常用参数:

实例:

强大的文本搜索命令,grep(Global Regular Expression Print)全局正则表达式搜索。

grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到标准输出,不影响原文件内容。

命令格式:

grep pattern file|dir

常用参数:

实例:

wc(word count)功能为统计指定的文件中字节数、字数、行数,并将统计结果输出。

命令格式:

wc file..

命令参数:

实例:

ps(process status),用来查看当前运行的进程状态,一次性查看,如果需要动态连续结果使用top。

linux上进程有5种状态:

ps工具标识进程的5种状态码:

命令参数:

实例:

显示当前系统正在执行的进程的相关信息,包括进程ID、内存占用率、CPU占用率等。

常用参数:

发送指定的信号到相应进程。不指定型号将发送SIGTERM(15)终止指定进程。如果无法终止该程序可用“-KILL” 参数,其发送的信号为SIGKILL(9) ,将强制结束进程,使用ps命令或者jobs 命令可以查看进程号。root用户将影响用户的进程,非root用户只能影响自己的进程。

常用参数:

实例:

显示系统内存使用情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。

命令参数:

实例:

Netstat 是一款命令行工具,可用于列出系统上所有的网络套接字连接情况,包括 tcp, udp 以及 unix 套接字,另外它还能列出处于监听状态(即等待接入请求)的套接字。如果你想确认系统上的 Web 服务有没有起来,你可以查看80端口有没有打开。以上功能使 netstat 成为网管和系统管理员的必备利器。

命令参数:

linux获取命令行参数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux获取命令行参数,如何在Linux中获取命令行参数,Linux常用命令的信息别忘了在本站进行查找喔。


数据运维技术 » 如何在Linux中获取命令行参数 (linux获取命令行参数)