bash 如何计算和检查传递的参数?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/6238973/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-18 00:07:17  来源:igfitidea点击:

How to count and check passed arguments?

rubybashcommand-line

提问by emurad

How can I translate the following Ruby code to Bash?

如何将以下 Ruby 代码转换为 Bash?

if ARGV.length == 0
    abort "\nError: The project name is required. Aborting...\n\n"
elsif ARGV.length > 2
    abort "\nError: The program takes two arguments maximum. Aborting...\n\n"
end

采纳答案by Seth Robertson

#!/bin/bash
USAGE="
#!/bin/bash
if [ $# -eq 0 ]; then
  echo -e "\nError: The project name is required. Aborting...\n\n"
  exit 1
elif [ $# -gt 2 ]; then
  echo -e "\nError: The program takes two arguments maximum. Aborting...\n\n"
  exit 1
fi
: <project name> [subproject attribute]" if [ $# -lt 1 ]; then echo -e "Error: The project name is required.\n$USAGE" >&2; exit 1; fi if [ $# -gt 2 ]; then echo -e "Error: Two arguments maximum.\n$USAGE" >&2; exit 1; fi

回答by MGwynne

The following should be what you need:

以下应该是您所需要的:

#!/bin/bash

function functionName {
if [ $# = 0 ]
then echo "\nError: The project name is required. Aborting...\n\n"; exit 1
fi

if [ $# \> 2 ]
then echo "\nError: The program takes two arguments maximum. Aborting...\n\n"; exit 1
fi

}

functionName a

The TLDP bash guide is very good if you are looking to learn bash, see TDLP Bash guide.

如果您想学习 bash,TLDP bash 指南非常好,请参阅TDLP Bash 指南

回答by Cosmin Cosmin

Maybe:

也许:

##代码##