Bash,无争议警告和案例决策

时间:2010-03-11 19:26:13

标签: bash

我正在学习bash。

我想做一个简单的脚本,当没有给出参数时,会显示一些消息。当我将numers作为参数时,s取决于值,它会做一件事。

我还想知道关于bash初学者最佳在线手册的建议

由于

4 个答案:

答案 0 :(得分:143)

if [[ $# -eq 0 ]] ; then
    echo 'some message'
    exit 0
fi

case "$1" in
    1) echo 'you gave 1' ;;
    *) echo 'you gave something else' ;;
esac

Advanced Bash-Scripting Guide非常好。尽管它的名字,它确实对待基础。

答案 1 :(得分:17)

如果只想丢失一个特定的参数,那么Parameter Substitution很棒:

#!/bin/bash
# usage-message.sh

: ${1?"Usage: $0 ARGUMENT"}
#  Script exits here if command-line parameter absent,
#+ with following error message.
#    usage-message.sh: 1: Usage: usage-message.sh ARGUMENT

答案 2 :(得分:10)

实施例

 if [ -z "$*" ]; then echo "No args"; fi

结果

No args

详细

-z 是字符串长度为零的一元运算符。 所有论据都是$*。 引号用于安全性并封装多个参数(如果存在)。

使用man bash并搜索( / 键)“unary”以获得更多这样的运营商。

答案 3 :(得分:0)

旧的,但由于先前的困惑,我现在有理由现在重新解决答案:

if [[ $1 == "" ]] #Where "$1" is the positional argument you want to validate 

 then
 echo "something"
 exit 0

fi

如果没有位置参数$ 1,它将回显“ Something”。但是,它不会验证$ 1是否包含特定信息。