我的代码:
$test =$(ps -ef |grep -c "java")
echo "$test"
它给了我错误:
root@test:~# ./restart.sh
./restart.sh: line 1: =4: command not found
有4个java进程在运行。
答案 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命名的进程)
会导致您的错误