Linux error: -gt unary operator shell script

Linux error: -gt unary operator shell script

我正在尝试制作自定义命令提示符。因此,例如,如果我输入 .文件名 1 你好 2 你好 自定义提示应如下所示:[][hello][hi][]$。数字 1 代表第二个位置,数字 2 代表第三个位置。 代码没有完全完成,但是当我尝试 运行 时,我得到一个错误 '-gt 一元运算符'

#!/bin/bash

$first  $second 

PS1="[][][][]$"

while [ $first -gt -1 ] || [ $second -gt -1 ]

do
    if [ $first -eq 0 ]
    then
        PS1="[][][][]$"
    elif [ $first -eq 1 ]
    then
        PS1="[][][][]$"
    elif [ $first -eq 2 ]
    then
        PS1="[][][][]$"
    elif [ $first -eq 3 ]
    then
        PS1="[][][][]$"
    fi
done

我尝试删除 while 循环以查看 if 语句是否会出现同样的问题,确实如此。我在这里做错了什么?

您还没有为“$first”赋值。

所以你的 while 循环基本上是这样做的:

[ -ge -1 ]

这是无效的语法,是导致您的一元运算符错误的原因。

你脚本的第二行没有意义。

$first  $second 

在上述参数的情况下,将尝试评估以下内容: “ 1 你好”

您可能会看到如下错误:

1: command not found