相关疑难解决方法(0)

如何测试变量是否是Bash中的数字?

我无法弄清楚如何确保传递给我的脚本的参数是否为数字.

我想做的就是这样:

test *isnumber* $1 && VAR=$1 || echo "need a number"
Run Code Online (Sandbox Code Playgroud)

有帮助吗?

linux bash shell

543
推荐指数
21
解决办法
61万
查看次数

Shell脚本:是否可以将getopts与位置参数混合?

我想设计一个shell脚本作为几个脚本的包装器.我想指定myshell.sh使用getopts的参数,并以相同的顺序将其余参数传递给指定的脚本.

如果myshell.sh执行如下:

myshell.sh -h hostname -s test.sh -d waittime param1 param2 param3

myshell.sh param1 param2 -h hostname param3 -d waittime -s test.sh

myshell.sh param1 -h hostname -d waittime -s test.sh param2 param3
Run Code Online (Sandbox Code Playgroud)

所有上述内容都应该可以作为

test.sh param1 param2 param3
Run Code Online (Sandbox Code Playgroud)

是否可以利用选项参数 myshell.sh 并将剩余参数发布到底层脚本?

parameters bash shell

49
推荐指数
3
解决办法
3万
查看次数

Bash:测试变量是否为整数

我想测试我的变量$var是否实际上是一个整数.我该怎么办呢?

testing variables bash integer

21
推荐指数
4
解决办法
5万
查看次数

Bash:检查用户输入是否正确

我写了一个bash脚本,它通过用户输入获取计算数字.我遇到的问题是如果用户错误地输入了字母或空格,整个脚本都会失败,用户必须重新开始.

必须有一种简单的方法来检查输入是否只是数字,如果意外输入任何其他内容,将再次请求输入?

bash

9
推荐指数
3
解决办法
3万
查看次数

如何检查数字是否在shell范围内

我想在两个值之间插入数字,否则重复脚本直到正确的数字.

这是我的脚本,它无法正常工作:

validation(){
read number
if [ $number -ge 2 && $number -ls 5 ]; then
    echo "valid number"
    break
else
    echo "not valid number, try again"
fi

}

echo "insert number"
validation
echo "your number is" $number
Run Code Online (Sandbox Code Playgroud)

bash shell sh

9
推荐指数
2
解决办法
1万
查看次数

正则表达式整理符号

我试图了解“整理符号”匹配的工作原理,但我没有弄明白。我明白这意味着匹配一个精确的序列,而不仅仅是字符,即:

echo "ciiiao" | grep '[oa]'     --> output 'ciiiao'
echo "ciiiao" | grep '[[.oa.]]' --> no output
echo "ciiiao" | grep '[[.ia.]]' --> output 'ciiiao'
Run Code Online (Sandbox Code Playgroud)

但是,第三个命令不起作用。我错了还是我误解了什么?

我已经阅读了这个正则表达式教程

regex bash

5
推荐指数
1
解决办法
1929
查看次数

Shell脚本:if语句中的RegEx

我似乎无法弄清楚如何在if语句中正确编写正则表达式.我希望它打印出所有带有"结束日期"的行.

NUMBERS包含一个包含以下内容的文本文件:

End Date    ABC ABC ABC ABC ABC ABC
05/15/13    2   7   1   1   4   5  
04/16/13    4   3   0   1   3   6  
03/17/13    6   9   3   8   5   9  
02/18/13    8   2   7   1   0   1  
01/19/13    1   9   2   2   5   2  
12/20/12    7   2   7   1   0   1 
Run Code Online (Sandbox Code Playgroud)

以下是我的代码片段,我遇到了以下问题:

if [ -f $NUMBERS ]
then
        while read line
        do
                if [ $line = ^End ]
                then
                        echo "$line"
                else
                        echo "BROKEN!"
                        break                   
                fi
        done …
Run Code Online (Sandbox Code Playgroud)

regex shell if-statement

4
推荐指数
1
解决办法
3万
查看次数

两个整数之间的 Bash 值,而不是浮点数

您好我有这个简单的comparisson运营商来说,是否number是(包括1和3太)1和3之间,但如果我assingnumber3,2它仍然接受是正确的。它应该只接受这些值1-2-3

我的代码

    if (("$number" >= 1 && "$number" <= 3)); then
    echo 'Correct number'
    fi
    
Run Code Online (Sandbox Code Playgroud)

bash

2
推荐指数
2
解决办法
96
查看次数

标签 统计

bash ×7

shell ×4

regex ×2

if-statement ×1

integer ×1

linux ×1

parameters ×1

sh ×1

testing ×1

variables ×1