我正在学习bash。
我想做一个简单的脚本,当没有给出参数时,会显示一些消息。当我将numers作为参数时,s取决于值,它会做一件事。
我还想知道关于bash初学者最佳在线手册的建议
由于
答案 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是否包含特定信息。