首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么'if [$#> 0]错了; 然后'?

这个问题是一个关于Bash脚本编程的问题。Bash是一种常见的Unix shell,用于在Linux和macOS等操作系统中编写脚本。这个问题中的代码片段是一个简单的if语句,用于检查命令行参数的数量。

代码片段如下:

代码语言:bash
复制
if [$# > 0]
then
    echo "错了"
fi

这段代码的问题在于缺少了空格。在Bash脚本中,[]是用于测试条件的命令,而不是普通的括号。因此,它们之间的表达式应该用空格分隔。正确的代码应该是:

代码语言:bash
复制
if [ $# -gt 0 ]
then
    echo "错了"
fi

这段代码的意思是:如果命令行参数的数量大于0(即有至少一个参数),则输出"错了"。这里使用了-gt操作符来比较两个数字,表示"大于"。

总之,这个问题的答案是:代码片段中的if语句缺少了空格,应该使用[ $# -gt 0 ]来比较命令行参数的数量。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

为什么用 if(0 == x) 而不是 if(x == 0) ?

大家好,今天跟大伙分享一个编程小技巧方面的知识:标题已经给出了,为什么有的人更愿意用 if ( 0 == x)而不是 if(x == 0)?...如果你养成了把常量放在==前面的习惯,那么当你意外不小心地把代码写成了 if(0 = x) 时,编译器就会报错。...坦白讲,就算是经验老道的程序员有时也会错把==写成=,而大多数人会觉得记住倒转比记住输入两个=号更容易,所以大家就喜欢写成if ( 0 == x)了, 当然这个技巧只对和常量比较的情况有用。...到这儿,有人会说这样写既难看又影响注意力,为什么不让编译器对if (x = 0 ) 报警呢?...实际上,很多编译器的确会对条件式中的赋值报警,但对比于 if(0 = x),还是反转的时候更容易被发现识别,所以反转写法也成了大家比较提倡的了。

1.7K30
  • 为什么会有0欧电阻这种东西?

    但是0欧电阻?不能阻挡电流的电阻我们要它干什么用?实际上,0欧电阻并不是一开始就出现的,而且大部分0欧电阻——都是贴片电阻。这是和它的用途息息相关的。...事实上,除了这些理由外,使用0欧电阻还有这样那样的额外作用。比如可以充当接地点的引线、构建电流回路等。还有一些原因则是很难考虑到的,比如为了方便取下测量、用没有标记的0欧电阻起到防抄板的作用等等。...4、想测某部分电路的耗电流的时候,可以去掉0ohm电阻,接上电流表,这样方便测耗电流。 5、在布线时,如果实在布不过去了,也可以加一个0欧的电阻。 6、在高频信号下,充当电感或电容。...8、熔丝作用 9、拟地和数字地单点接地 只要是地,最终都要接到一起,然后入大地。如果不接在一起就是"浮地",存在压差,容易积累电荷,造成静电。...0欧电阻相当于很窄的电流通路,能够有效地限制环路电流,使噪声得到抑制。电阻在所有频带上都有衰减作用(0欧电阻也有阻抗),这点比磁珠强。

    66141

    为什么数组都是从0开始编号

    数组 数组两个特性 为什么数组都是从 0 开始编号,首先先了解一下数组的概念。 数组 Array 是一种线性表数据结构,是一组连续的内存空间,用来存储一组具有相同类型的数据。...int arr[10] = { 0 }; for (int i = 0; i < 10; i++) { arr[i] = i; } 运行结果如下, image.png 从运行结果可以看出,计算机给数组...arr,分配了 40 字节的内存,首地址为 0x7ffeefbff4f0,arr[0] 地址为:0x7ffeefbff4f0,arr[9] 地址为:0x7ffeefbff514,每个 int 有 4...个字节,故 arr[9] 结尾为 0x7ffeefbff514。...在 C 语言中数组名代表首地址,即第一个元素的地址,a[0] 就是偏移为 0 的位置,a[k] 就表示偏移 k 个元素类型大小的位置。

    1.1K30

    计算机为什么要从 0 开始计数?

    众所周知,计算机是从 0 开始计数,而不是我们平时常用的从1开始计数,但你有想过为什么吗? 其实不是计算机从 0 开始计数而是多数编程语言中的数组都使用 0 作为起始下标,又是为什么呢?...,那范围会是0 ≤ i < N,显然后一种方式更优雅更直观,所以大佬最后的结论是自己更倾向于一个序列的表示最好从0开始。...首先确定使用左闭右开的方式,当下标从1开始时,下标范围为1<=i<n+1,当下标为从0开始时,下标范围为0<=i<n,显然后面这种方式更加优雅,所以他倾向于使用0作为第一个元素的下标。...其实下标从0开始主要的意义是表示偏移,下面举例: 数组为什么起始下标是0?其实数组是一种线性结构,它有一段连续的内存空间,存储一组具有相同类型的数据。...这就是为什么Python使用0作为起始索引的原因。 看到这里你知道为什么很多编程语言都是从0开始计数了吗? 文中如果有翻译的不妥之处还请大家指正(可以私聊或在后台发给我),十分感谢!

    1.2K20

    反直觉的三门问题:Python告诉你,为什么80%的人都错了

    此刻,主持人友善的打开了B门,门后空空如也,然后狡黠一笑,挑着眉问:“先生,你是坚持最初的选择C呢?还是投向A门的怀抱?” “坚持你的选择!不要临阵变卦!”观众嘶声力竭。 ?...“哥,我为什么运气这么差!”我被这突如其来的循环穿越搞的近乎绝望,只想尽快逃出这个鬼循环。...len(lst)) #计算有多少个正确的,相等即为正确,最终返回FALSE和TRUE的序列 judge = (lst == guess) #因为TRUE默认是1,FALSE默认是0,...举个栗子:当我们选择的是A门,大奖藏在B门,那主持人帮我们打开的空门一定是C门,然后问我们是否改变选择。如果我们第一步猜的和正确答案不一致,改变选择之后一定会中奖。...)]) #剩下的一个就是我们最终选择的门 guess_change.append(anwser_range[0]) 第二个场景我们也可以顺手封装成一个完整函数,这个注释更加完整: def

    43910

    为什么计算机只认识0和1?

    懂得扣个1,不懂得扣个0 ”。于是,我开始吐槽: 首先,我们要从计算机的历史讲起,这部分涉及到一些硬件知识。...采用一定的工艺,把一个电路中所需的晶体管、电阻、电容和电感等元件及布线互连一起,制作在一小块或几小块半导体晶片或介质基片上,然后封装在一个管壳内,成为具有所需电路功能的微型结构; 集成电路,按其功能、结构的不同... 而且在逻辑代数方面,二进制只有0和1两个数码,正好与逻辑代数中的“真”和“假”相吻合。 二进制,是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。...所以我们说,计算机只认识0和1是不准确的,应该说:电子计算机只认识0和1,因为还有些计算机不是电子计算机。...普通的数字计算机在0和1的二进制系统上运行,称为“比特”(bit)。但量子计算机要远远更为强大。它们可以在量子比特(qubit)上运算,可以计算0和1之间的数值。

    75130
    领券