gpt4 book ai didi

linux - 找不到相关命令

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:27:39 25 4
gpt4 key购买 nike

我陷入了一个说。
./212A1.sh:line327:[[10:找不到命令
…(还有10多个相同的错误,我想这是由于打印输出的记录。
这是我327行的代码。

if [[$QtyAvailable -eq $lowStockMargin && $QtyAvailable -lt $lowStockmargin]]

直到我最近打开我的ubuntu并重新开始运行我的程序,一切都很正常。我没有编辑那行的任何东西。
#啊!/bin/bash仍然在文件的第一行声明。
提前感谢那些帮忙的人!:)
 read -p $'Please kindly key in the margin for low stock: \033[4m' lowStockMargin
printf '\033[0m'

grep "$1" BookDB.txt |
while IFS=: read Title Author Price QtyAvailable QtySold;
do
#compare user input with every extracted line with the qtyavailable variable
if [[ $QtyAvailable -eq $lowStockMargin && $QtyAvailable -lt $lowStockMargin ]]
then
#if condition is passed, then print information of the book
printf "%-50s %-16s %-14s %-15s %-13s %s\n" "$Title" "$Author" "$Price" "$QtyAvailable" "$QtySold" "$(echo $QtySold*$Price | bc)"
fi
done

解决方案
我把电话改成了
如果(($qtyavailable<=$lowstockmargin));
结果很好。
谢谢你们的意见。

最佳答案

问题在于:

[[$QtyAvailable

在shell脚本中, [[本身就是一个命令标记。因此,与其他任何令牌一样,此令牌的规则也适用。也就是说,你需要空白。所以你应该这样说:
[[ $QtyAvailable

在这一行的末尾有一个类似的问题-- ]]需要自己站起来,而不能与其他文本连接。
原因可以追溯到最初的伯恩贝壳时代。bash的 [[只是原始bourne shell的 [命令的扩展。回到t'day,(当时所有这些都是字段,我只是一个lad,ee by gum), [是一个外部命令,它本身就是指向外部 test的符号链接。
最终 [变成了一个shell内置的,但是语义(即,将 [作为一个独立的命令处理)仍然是向后兼容所需要的(至少是这样),因此为sh编写的脚本可以在没有内置的地方运行。所以现在我们跳到现在,同样的语义仍然存在。它对bash维护人员也有实际的好处:将 [[[作为一个独立的标记是一个简单的练习。介绍其他字符作为分隔符,它增加了复杂性(不是很多,但足够了)。

关于linux - 找不到相关命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9113350/

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