Shell脚本语法错误:出现意外的 'var=$'。

3
有人能解释一下为什么以下shell脚本行会抛出这个错误:
#!/bin/sh
var=$(uptime | awk ' { print $2 } ');
echo $var ;

错误:

syntax error 'var=$' unexpected

1
你是如何运行脚本的? - Karthikeyan.R.S
当然,将输出捕获到变量中,以便您可以echo该变量是一种迂回的近似,即不捕获输出,使其打印到标准输出。 - tripleee
1个回答

6

根据系统及其配置不同,/bin/sh 不一定能够理解 $(...) 的语法。可以将其改为旧的语法:

var=`uptime | awk ' { print $2 } '`

或者将第一行改为

#!/bin/bash

(是的,POSIX为sh指定了 $(...) 命令替换语法,但 /bin/sh 并不总是符合POSIX标准。)
(顺便提一下,尾随的分号是不必要的。)

感谢您的提示,@keith-thompson,关于POSIX兼容性。 - sjsam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接