我是靠谱客的博主 平常帽子,最近开发中收集的这篇文章主要介绍【总结】shell 脚本命令执行结果赋值给变量无效,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

背景

想要写一个脚本,从某台服务器上抓取某个服务的进程信息。
将某个命令执行结果保存到变量中。

问题现象:使用反引号方式获取不到值

这个问题很怪异,我上次按照同样的方式,获取别的服务进程信息,是可以的。
这次在另一台机器,换另一个进程,就不行。

PROCCESS_INFO=`ps -ef | grep 'XxxServer' | grep 'java'| awk '{print $11}'`
echo $PROCESS_INFO

解决方法

解决方法:反引号前后增加空格,再次执行脚本,就可以正常输出了。

PROCCESS_INFO=` ps -ef | grep 'XxxServer' | grep 'java'| awk '{print $11}' `
echo $PROCESS_INFO

扩展:反引号``和 $()的使用区别

Linux 系统重,还有另一种方式$()可以将命令执行结果赋值给变量。

PROCCESS_INFO=$(ps -ef | grep 'XxxServer' | grep 'java'| awk '{print $11}')
echo $PROCESS_INFO

反引号和$()的两种方式是等价的,但又有不同点,下面介绍其区别。

两种方式异同点:

  1. 两种方式的效果是等价的;
  2. 反引号容易和单引号混淆;
  3. $() 方式支持嵌套使用,反引号不行;
  4. 绝大多数shell 都支持反引号方式,有些shell 不一定支持$()。

最后

以上就是平常帽子为你收集整理的【总结】shell 脚本命令执行结果赋值给变量无效的全部内容,希望文章能够帮你解决【总结】shell 脚本命令执行结果赋值给变量无效所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(96)

评论列表共有 0 条评论

立即
投稿
返回
顶部