gpt4 book ai didi

python - 如何在不输出到Bash中的stderr的情况下添加命令行参数数组

转载 作者:行者123 更新时间:2023-12-01 01:04:20 24 4
gpt4 key购买 nike

我需要编写一个bash脚本,该脚本接收一个数组(N个空格分隔的整数)作为命令行参数,并输出整数的总和。

当我将字符串作为参数传递时,我从expr中收到错误,而我的程序应该写一条以Usage:开头的错误消息,如下所述。

bash : test.sh hello world   
expr: non-integer argument


实现如下:

#!/bin/bash
for i do
sum=$(expr $sum + $i)
done
echo $sum


预期的规格如下:

$ bash my-script.sh 1 2 3 4
10
$ bash my-script.sh
Usage:- bash my-script.sh space-separated-integers
$ bash my-script.sh hello world
Usage:- bash my-script.sh space-separated-integers

最佳答案

#!/usr/bin/env bash

# No arguments
if [[ $# -eq 0 ]]; then
echo "Usage:- bash $0 space-separated-integers" >&2
exit 1
fi

result=0
reg='^[0-9]+$'

# One argument is not a number
for arg in "$@"; do
if ! [[ $arg =~ $reg ]] ; then
echo "Usage:- bash $0 space-separated-integers" >&2
exit 1
else
((result += arg))
fi
done

echo "$result"

关于python - 如何在不输出到Bash中的stderr的情况下添加命令行参数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55521021/

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