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

San*_*ing 1 linux bash nagios

这个Nagios脚本使用${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
Run Code Online (Sandbox Code Playgroud)

做什么${1}${*}做什么?

Taj*_*der 5

命令行参数$ 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 : $#"
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述