shell 如何获取一条命令的输出结果

shell 如何获取一条命令的输出结果,第1张

return=`linux命令` 会将linux命令的结果赋值给return

return=$(linux命令)也是将linux命令的结果赋值给return的一种方式

灵活使用能解决很多问题

[TOC]

如果想查看当前所在工作路径并列出当前目录下所有的文件及属性信息,实现这个功能的脚本如下:

Shell脚本文件的名称可以任意,但为了避免被误以为是普通文件,建议将 sh 后缀加上,以表示是一个脚本文件

在上面的 examplesh 脚本中出现了三种不同的元素:

执行脚本有两种方式:

变量的作用:

用测试语句测试一个文件是否为目录,然后通过 Shell 解释器内设 $ 变量显示上一条命令的返回值

在Shell终端中逻辑“与”的运算符号是 && ,它表示当前面的命令执行成功后才执行后面的命令

等号两边必须要有空格,才能进行逻辑等于

它表示把条件测试中的判断结果取相反值

整数比较运算符仅对数字 *** 作,且不能使用等号、大于号、小于号来判断。因为等号与赋值命令符冲突,大于号和小于号分别与输出重定向和输入重定向命令符冲突。因此一定要使用规范的整数比较运算符进行 *** 作。

示例:使用 free -m 命令查看内存使用量情况(单位MB),然后通过 grep Mem: 命令过滤出剩余内存量的行,使用 awk'{print $4}' 命令只保留第四列,最后用 FreeMem=`语句` 的方式把语句内执行结果复制给变量

示例1 :判断String变量是否为空,进而判断是否定义了这个变量

示例2 :引入逻辑运算符,判断语系LANG

cut 命令的作用是对文本中的内容进行截取。

一个文件里边有很多数据, grep 命令是用来提取文本内容包含匹配规则的行,而 cut 命令是用来截取文本内容中的列数据。

使用如下文本:

使用 cut 命令提取studenttxt文本中的第二列信息

如果只需要第二列信息,且不需要标题,就需要结合前边说的 grep 命令一起使用了。

如果想要提取文本中多列数据,只要将列号直接用 , (逗号)分开即可,命令如下:

cut 命令可以按照字符进行提取,需要注意 8- 代表的是提取所有行的第十个字符开始到行尾,而

10-20 代表提取所有行的第10个字符到第20个字符,而 -8 代表提取所有行从行首到第8个字符。

例如:以 : 作为分隔符,提取 /etc/passwd 文件中,普通用户的第一列和第三列数据信息。

需要先过滤掉伪用户和root用户,在切割提取。

之后我们就可以把这些提取出来的数据,传入变量中,然后该变量就可以在程序中进行 *** 作了。

cut 命令默认分隔符是制表符(tab键),而不是使用空格来进行分隔,因为 cut 命令不识别空格作为分隔符。

如果有特定的符号,也是可以用 -d 选项进行指定做为分隔符。

而空格不推荐作为 cut 命令的分隔符。

如查看磁盘情况的 df 命令:

这个命令中间的分隔就是空格。

如我们通过 cut 命令获取二列信息,如下:

我们看到 cut 命令默认是不识别空格作为分隔符的。

如果我们用 -d 选项指定空格作为分隔符,如下:

可以看到获取的是一列空格,也非常的不好用。

所以不推荐空格作为 cut 命令的分隔符。

以上就是关于shell 如何获取一条命令的输出结果全部的内容,包括:shell 如何获取一条命令的输出结果、编写Shell脚本---接受、判断用户参数、【现学现忘&Shell编程】— 30.cut列提取命令等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9403783.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存