我正在学习bash。
我想做一个简单的脚本,当没有给出参数时,会显示一些消息。当我把numers作为参数时,s取决于值,它会做一件事或另一件事。
我还想知道关于bash初学者最好的在线手册的建议
谢谢
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非常好。尽管它的名字,它确实对待基础知识。
如果只想丢失一个特定的参数而对bailing感兴趣,那么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
if [ -z "$*" ]; then echo "No args"; fi
No args
-z是字符串长度为零的一元运算符。 $*
是所有论据。引号用于安全性并封装多个参数(如果存在)。
对于像这样的更多运营商,使用man bash
和搜索(/ key)为“一元”。
旧的,但由于之前的一些困惑,我有理由重新修改答案:
if [[ $1 == "" ]] #Where "$1" is the positional argument you want to validate
then
echo "something"
exit 0
fi
如果没有位置参数$ 1,这将回显“Something”。但它不会验证$ 1是否包含特定信息。