相关疑难解决方法(0)

检查传递给Bash脚本的参数数量

如果不满足所需的参数计数,我希望我的Bash脚本能够打印错误消息.

我尝试了以下代码:

#!/bin/bash
echo Script name: $0
echo $# arguments 
if [$# -ne 1]; 
    then echo "illegal number of parameters"
fi
Run Code Online (Sandbox Code Playgroud)

由于某些未知原因,我遇到以下错误:

test: line 4: [2: command not found
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

bash parameter-passing command-line-arguments

663
推荐指数
6
解决办法
71万
查看次数

比较Bash中的数字

我开始学习为bash终端编写脚本,但我无法弄清楚如何让比较正常工作.我正在使用的脚本是:

echo "enter two numbers";
read a b;

echo "a=$a";
echo "b=$b";

if [ $a \> $b ];
then 
    echo "a is greater than b";
else
    echo "b is greater than a";
fi;
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是它比较了第一个数字的数字,即9大于10000,但1大于09

如何将数字转换为类型以进行真正的比较?

bash shell numeric

462
推荐指数
8
解决办法
79万
查看次数

比较bash中的数字时,为什么"[[10 <2]]"为真?

我跑的时候

if [[ 10 < 2 ]];
  then echo "yes";
else echo "no"; 
fi
Run Code Online (Sandbox Code Playgroud)

在shell中,它返回yes.为什么?应该是no吗?而当我跑

if [[ 20 < 2 ]];
  then echo "yes";
else echo "no";
fi
Run Code Online (Sandbox Code Playgroud)

它返回no.

bash shell

6
推荐指数
1
解决办法
1297
查看次数