shell中给变量赋值命令的输出结果报错 变量名:command not found

需要将 ls | grep jar | wc -l 命令执行的结果(执行结果是个数值)赋值给一个变量,后面调用。
怎么赋值,两种方法:
1.变量名=ls | grep jar | wc -l#注意不是单引号,是反引号,就是ESC下面的键

image.png

2.变量名=$(ls | grep jar | wc -l)
image.png

注意注意!!!
变量赋值等号前后都不能有空格!!!

之后调用参数:
{参数名}

image.png

看下我写的shell脚本,就是个简单的先通过命令找到最后面的jar包,然后启动jar包
image.png

执行shell,老是报错:


image.png

查看shell第三行,不就是jarnum赋值的这一行嘛
其实shell用的多的一看就知道问题在哪了,但是我只是偶尔用shell,所以不知道,网上各种找找找,开始还以为是取命令执行结果那块的问题,各种试。最后发给一个做运维的朋友看了下,他说多了空格,去掉之后才执行成功了,真是又好笑又好气。
以前上学学C语言和外面的培训机构学习java,那会对这个也不感兴趣,语言是没学到啥,就记得了要把代码写的好看美观些,那个老师总是强调,变量赋值等号前后加上空格,代码会好看云云,导致我现在习惯性加上空格,算了,以后慢慢改正吧。

你可能感兴趣的:(shell中给变量赋值命令的输出结果报错 变量名:command not found)