linux 从终端用参数调用函数,而不是整个bash脚本不工作[重复]

qq24tv8q  于 5个月前  发布在  Linux
关注(0)|答案(1)|浏览(81)

此问题在此处已有答案

Propagate all arguments in a Bash shell script(12个答案)
关闭21天前.

#!/bin/bash

function main {

    [ -z "$1" ] && { getPID "$@";  } || $1

}

getPID() {

a=$1
b='service'

if [[ $a == 'contains' ]]; then
PID=$(pgrep -f  $b)
elif [[ $a == 'exact' ]]; then
PID=$(pgrep -x  $b)
fi

echo "$PID"
}

main "$@"

**命令:**我正在运行调用函数:./script.sh getPID包含
**输出:**输出为空,变量a的值为空

bvjxkvbb

bvjxkvbb1#

当您在main中调用$1时(当$1包含字符串getPID时),它只调用getPID *,不带参数 *。
要将其他参数传递给getPID,应该使用"$@"而不是$1

相关问题