【问题标题】:Linux error: -gt unary operator shell scriptLinux 错误:-gt 一元运算符 shell 脚本
【发布时间】:2020-06-18 15:06:42
【问题描述】:

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

#!/bin/bash

$first $1 $second $2

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

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

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

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

【问题讨论】:

    标签: linux while-loop virtual-machine command-prompt operator-keyword


    【解决方案1】:

    您尚未为“$first”赋值。

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

    [ -ge -1 ]
    

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

    脚本的第二行没有意义。

    $first $1 $second $2
    

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

    您可能会看到如下错误:

    1: command not found
    

    【讨论】:

    • 没关系,它解决了错误!感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2018-10-25
    • 1970-01-01
    • 2013-07-16
    • 1970-01-01
    • 1970-01-01
    • 2019-11-19
    • 1970-01-01
    • 2014-01-14
    相关资源
    最近更新 更多