gpt4 book ai didi

linux - 第 8 行 : [: N: integer expression expected

转载 作者:太空宇宙 更新时间:2023-11-04 04:45:42 25 4
gpt4 key购买 nike

我收到错误第 8 行:[:N:需要整数表达式。我尝试删除 $userManuf 中的 "" 并将 = 更改为 ==,但仍然收到错误。我应该怎么办?谢谢

function manuf {
echo -n "Manufacturer: " ; read userManuf
varManuf=$(mysql -D snipeit -e "SELECT count(id) FROM manufacturers;")
countManuf=$(echo $varManuf | awk '{print $2}')

if [ $userManuf -ne 0 ] && [ $userManuf -le $countManuf ]; then
assetModelManuf=$userManuf
elif [ "$userManuf" = "n" ] || [ "$userManuf" = "N" ]; then
echo -n "Type new manufacturer name: " ; read userNewManuf
assetModelManuf=$userNewManuf
else echo "Try again!" && manuf
fi
}

最佳答案

$userManuf扩展为N,但您尝试将其用作整数运算符-ne的操作数时,就会发生错误。最简单的修复方法是首先验证它是否具有数值(然后使用算术语句来简化比较):

if [[ $userManuf =~ [0-9]+ ]] && (( 0 < userManuf && userManuf <= countManuf )); then
assetModelManuf=$userManuf
elif [[ $userManuf = [nN] ]]; then
read -p "Type new manufacturer name: " assetModelManuf
else
echo "Try again!" && manuf
fi

您可能还想使用 while 循环而不是递归调用 manuf。我将把它作为练习(或将来的问题,如果需要的话)。

关于linux - 第 8 行 : [: N: integer expression expected,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38340874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com