Linux Shell脚本:处理文件、命令行参数与用户输入技巧

创始人
2024-12-25 16:14:56
0 次浏览
0 评论

如何使用shell脚本删除文本文件中最后一个换行符

[root@localhostwwe]#cat-Egood$good$[root@localhostwwe]#1使用tr命令[root@localhostwwe]#tail-n1good|tr-d'\n'>>oo[root@localhostwwe]#.cat-Eoogood[root[/color]@localhostwwe]#2.将最后一个词改为“好”。
删除一行[root@localhostwwe]#sed-i'$d'good[root@localhostwwe]#cat-Egood$3。
将oo中处理换行符的结果写入到good[root@localhostwwe]#sed-i'roo'gut[root@localhostwwe]#cat-Egood$gut[root@localhostwwe]#

shell对于用户输入的命令行如何进行处理?

linuxshell处理用户输入

命令行参数

读取参数,程序名$0,第一个参数$1等等,直到$9。
第10个参数必须用大括号括起来。
${10}

读取程序名称。
默认$0是读取程序名和路径,但有时只是程序名。
需要脚本名称,而不是路径。
此时可以使用基名称,例如:

这样就可以根据不同的脚本名称运行不同的函数

测试设置,当需要设置但不遵循会报错。
因此,需要检查数据是否存在,如下所示:

特殊参数变量

参数个数$#该变量存储脚本执行时的参数个数。
如果要在大括号中使用此参数,则必须将$替换为!因为美元符号不能用在大括号内。

为了捕获所有数据,$*和$@提供对所有参数的快速访问。
$*将所有参数视为单个参数,$@将单独处理每个参数。

移动变量偏移量默认左移一位。
您可以通过在移位后添加数字来更改默认的左移编号。
shift2左移2位。

处理选项

简单选项

执行结果:

单独的设置和选项

此处使用连字符来区分选项和参数

具有值的管理选项

如上图所示,值为-b的选项

getopt命令可以识别命令行参数

getoptoptionsoptstringparameters

optstring列出要在脚本中使用的每个命令行选项字母,然后在每个需要参数值的选项字母后面添加一个冒号。
getopt将根据定义的optstring解析提供的参数。

如图:-b选项需要参数,所以b后面有一个:参数为test1,test2和test3为参数,用双连字符分隔

当出现无效参数时,会显示错误,如下所示:

当添加选项-q时,会出现错误消息将被忽略,如图所示如下:

注意-q的位置

脚本中使用getopt

使用set-l命令'选项将用set命令的命令行值替换命令行参数。
首先,将原始脚本中的命令行参数传递给getopt,然后getopt将结果发送给set命令。
例如下面的

set--`getopt-qab:cd"$@"`下面是一个例子:

getopts

getoptsoptstringvariable命令,在optstring前面添加:去除错误信息。

getopts使用两个环境变量。
如果该选项需要参数值,则OPTARG环境变量将包含该值。
OPTIND环境变量保存了该参数在getopts处理的参数列表中的位置。

未定义的选项统一显示为问号:

其中d未定义。

getopts会将OPTIND环境变量的值加一处理每个选项时。

使用OPTIND值和shift命令来移动参数,如下图:

OPTIND值就是参数所在的位置被保存并且移动为-1。
数量恰好到达参数位置。

获取用户输入

基本阅读

-n选项将删除结尾来自换行符的字符串,允许脚本用户随后立即输入数据。

-p参数后面可以跟多个变量并依次赋值

如果read后面没有跟变量,则接收到的数据将默认放置在特殊的REPLY环境变量中。

-t设置超市时间(以秒为单位)。
超时后,读取命令将以非零退出状态代码退出。

-n后面的数字1表示直接接受一个字符,然后自动退出,无需按回车键。

-s隐藏条目。
实际上,数据会被显示,但读取命令将文本颜色设置为与背景颜色相同的颜色。

从文件读取

热门文章
1
C语言字符串常量解析:区别、用途及存储方... 什么是字符串常量字符串常量是C语言中的一种数据类型,它是由一对双引号括起来的字符...

2
C语言printf函数:格式字符串与输出... printf函数中的格式与输出项有什么关系?在C语言中,printf函数中的格式...

3
Excel技巧:计算字符串起始位置与合并... 如何计算字符串在特定文本中的起始位置,怎么计算字符串在特定文本中的起始位置您可以...

4
Python发音全解:掌握正确的发音方法... python怎么读我的很多学习编程的朋友可能都知道Python这个词,但是他们中...

5
字符与字符串:编程中的基础文本类型解析 字符串什么意思字符串是由数字、字母和下划线组成的字符串,表示为s=“a1a2…a...

6
Python编程语言:多领域应用与开发优... Python的作用是什么?Python是一种跨平台计算机编程语言,是ABC语言的...

7
深度解析:C语言编程特点与应用领域 什么叫c语言C语言是一种编程语言。C编程语言应用广泛,具有以下特点和特点:1.语...

8
Java全解析:跨平台编程语言的魅力与多... java是什么Java是一种功能强大的编程语言,被称为“一次编写,随处运行”模型...

9
C语言printf输出常量类型与格式详解 C语言中如何输出各种常量?C语言的输出常量和输出变量是相同的。可以使用带有各种格...

10
Python发音指南:英式美式发音差异及... python怎么发音python的发音和注释如下:python英文[?pa?θ?...