Bash 脚本错误

Jac*_*001 1 bash-scripting

我正在尝试编写一个 bash 脚本来管理设置用户配置文件。我似乎无法弄清楚为什么这个 if 语句不起作用。我有代码:

#!/bin/bash
#check if programs are installed
( TMUX=$(tmux -V) && echo "tmux at version $TMUX" ) || echo "tmux not installed"
if [ $TMUX != "1.8" ]; then
    echo "installing tmux"
fi
Run Code Online (Sandbox Code Playgroud)

但无论我尝试什么,我都会不断收到错误消息

test.sh: line 6: syntax error near unexpected token `fi'
test.sh: line 6: `fi'
Run Code Online (Sandbox Code Playgroud)

关于什么可能导致这种情况的任何想法?

slh*_*hck 5

如果您运行tmux -vtmux没有安装,你会得到一个错误。在子 shell 中分配变量也意味着它永远不会在外部定义,除非导出。而是尝试使用which以下方法检查它:

TMUX="$(which tmux > /dev/null && tmux -v)"
if [ "$TMUX" != "1.8" ]; then
    echo "installing tmux"
fi
Run Code Online (Sandbox Code Playgroud)

字符串比较 withtest要求您引用您的参数,否则您会收到有关Bash预期一元运算符的错误。