无法将可变数据分配给echo

时间:2015-11-29 10:48:23

标签: linux shell

我的代码:

$test =$(ps -ef |grep -c "java")

echo "$test"

它给了我错误:

root@test:~# ./restart.sh

./restart.sh: line 1: =4: command not found

有4个java进程在运行。

2 个答案:

答案 0 :(得分:2)

尝试:

test=$(ps -ef |grep -c "java")
echo "$test"

我认为您只需删除第一个$符号。

要将任何shell命令的输出分配给bash中的变量,请使用以下命令替换语法:

var=$(command-name-here)
var=$(command-name-here arg1)
var=$(/path/to/command)
var=$(/path/to/command arg1 arg2)

编辑:“不要在等号之前或之后放置任何空格”

答案 1 :(得分:0)

正确的代码是

test =$(ps -ef |grep -c "java")

echo "$test"

执行$test将获取变量test的值,该值在开始时为空,因此您的代码将等效于

=$(ps -ef |grep -c "java")

=4评估(我想你有4个运行java命名的进程)

会导致您的错误