shell,单行if语句,变量赋值错误

时间:2019-08-28 22:21:01

标签: bash

user="none"
noneexist="false"
id -u $user > /dev/null 2>&1
if [[ $? -eq 0]]; then ${user}exist="true"; else echo "$user do not exist"; fi
-bash: syntax error in conditional expression: unexpected token `;'
-bash: syntax error near `;'

我收到此错误,不确定我的陈述有什么问题。

1 个答案:

答案 0 :(得分:1)

;

之前放置一个空格
if [[ $? -eq 0 ]] ; then ${user}exist="true" ; else echo "$user do not exist" ; fi

条件括号的两边都需要有一个空格([[]])。以下所有选项均有效:

  • if [[$? -eq 0 ]] ; ...
  • if [[ $? -eq 0]] ; ...
  • if [[ $? -eq 0 ]]; ...