linux - ${1} 和 ${*} 有什么作用?

标签 linux bash nagios

<分区>

Nagios script像这样使用 ${1}${*}

if [ "${1}" ]; then
    if [ "${ERRORSTRING}" ]; then
        echo "${ERRORSTRING} ${OKSTRING}" | sed s/"^\/ "// | mail -s "$(hostname -s): ${0} reports errors\
" -E ${*}
    fi
else
    if [ "${ERRORSTRING}" -o "${OKSTRING}" ]; then
        echo "${ERRORSTRING} ${OKSTRING}" | sed s/"^\/ "//
        exit ${ERR}
    else
        echo no zpool volumes found
        exit 3
    fi
fi

问题

${1}${*} 有什么作用?

最佳答案

命令行参数 $1, $2, $3,...$9 是位置参数,$0 指向实际的命令、程序、shell 脚本或函数,$1、$2、$3、...$9 作为位置参数命令的参数。

“$*”特殊参数将整个列表作为一个参数,其间有空格,“$@”特殊参数将整个列表分成单独的参数。

假设 test.sh 如下:

#!/bin/sh 
echo "File Name: $0" 
echo "First Parameter : $1" 
echo "First Parameter : $2" 
echo "Quoted Values: $@" 
echo "Quoted Values: $*" 
echo "Total Number of Parameters : $#"

enter image description here

关于linux - ${1} 和 ${*} 有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20967775/

相关文章:

c - I2C 用户空间读/写问题

linux - 如何使用网络服务从 VLC (linux) 流式传输到 iPod(完整过程)?

linux - 最好通过命令行将 Ubuntu 11.04 更新到 12.04

bash - VIM - 通过命令行传递冒号命令列表

linux - 为什么 echo 显示命令本身而不是命令输出

python - 如何开始使用 Python SCTP 堆栈 (pysctp)?

regex - 如何在 sed 中保留其他捕获组的同时对捕获组进行后处理?

mysql - 监控 MySQL slave 状态

php - 如何捕获PHP snmpwalk警告?

mysql - nagios如何通过shell脚本监控远程主机?