read,source,mapfile命令与shell编程

Bash是一种相当强大的编程语言,很容易上手。这里有一个未知但有用的bash命令。此命令有助于使您创建的shell脚本更清晰、更容易维护。毕竟,打开终端时最常见的外壳。

Bash有一个不知道的强有力的命令。即使熟练地使用这种语言。但是,这些命令非常有用,使您编写的shell脚本更加清晰、易于维护,并且比以前更强大。

本教程演示如何将read、mapfile和source命令实际应用于bash脚本。我们举了一个希望能有帮助的一般例子。

read命令询问用户的输入

使用Read指令,您可以接受脚本中的使用者输入,并将输入储存在变数中。

#!/usr/bin/env bash

Echo ‘What is your name?’请单击。

Read name

Echo your name is $ {name}!请单击。

这将等待用户输入,然后将name变量的值设置为用户输入的字符串。

例如,如果在运行上述脚本时指定myfreax.com作为名称,则会输出Your name is myfreax.com。

您还可以将Read命令的选项指定为-p,使上述示例更加优雅。此选项会在后面打印指定的字符串-p,并请求用户输入。

#!/usr/bin/env bash

Read -p ‘What is your name?Name

Echo your name is $ {name}!请单击。

你也注意到我在What is your name吗?后面又加了一个空格。如果我们不加它,这在用户输入时会显得更奇怪。

mapfile命令将文件的行转换Bash数组

可以使用Mapfile命令读取文件的内容,并将输出分配给Bash数组。每当文件中发生换行时,就会创建数组元素。

例如,创建名为的文件file.txt,其中包含以下文本:

第1行

第2行

第3行

第四排

第五排

通过运行以下命令,可以将此文件转换为Bash数组:此命令将文件的内容分配给file_var变量。

#!/usr/bin/env bash

Mapfile file_var file.txt

for I in ‘ $ { file _ var[@]} ‘;道路

Echo ‘${i} ‘ ‘ ‘

唐(消歧义)

上述内容还会生成与命令中添加-t选项可解决的文件内的内容不匹配的奇怪间隙输出。

#!/usr/bin/env bash

Mapfile -t file_var file.txt

for I in ‘ $ { file _ var[@]} ‘;道路

Echo ‘${i} ‘ ‘ ‘

唐(消歧义)

最后,您会发现以下事项不起作用:

#!/usr/bin/env bash

Cat file.txt | mapfile -t file_var

这是因为mapfile管道右侧的命令在子shell中执行。这意味着在新的Bash实例上运行,而不影响当前shell。

source命令将文件中的变量导入shell的环境变量中

假设存在以下虚拟文件config.sh,其中包括:

Username=myfreax

域=myfreax.com

要获取此文件的内容并将其放入当前shell的环境变量中,使用source命令非常容易。

Source config.sh

然后,您可以确认变量是否按预期分配。Source命令实际上在当前shell环境中运行指定的文件,因此将执行该文件中的所有命令。

例如,我将在config.sh中部署以下内容:

Name=’myfreax ‘

Echo ‘Hello ${name}!’请单击。

Echo a good day!请单击。

然后,当您执行soure config.sh时,会发出两个echo指令,并确认已指定name变数。代替酱汁。中选择另一种天花板类型。在这种情况下,它的工作方式与相同的source相同。

结论

学习如何使用Read命令请求用户输入。说明如何使用Mapfile命令将文件中的行转换为Bash数组。说明如何使用Source命令将文件中的变量作为shell的环境变量导入。您还知道Source命令的别名。如果有疑问或反馈,请随时在下面发表意见。

Linux

壳(shell)

教程

脚本

巴什

编程

Source

Mapfile

Read

命令

编程教学

如何在命令行中检查Linux内核版本的3种方法

2022-9-20 9:59:52

编程教学

Linux shell编程的shebang#!

2022-9-20 10:45:25

搜索