【发布时间】:2013-10-23 12:25:11
【问题描述】:
我正在尝试执行命令,但我需要获取命令行参数。这是我的问题:
这是代码:
pl_function(){
node=$(echo "$1" | awk -F'\.' '{print $2}')
echo $node
}
我有一个案例陈述:
case "$1" in -pl.*)
pl_function
;;
esac
当我运行它时,它会打印一个空白。
另外,我想包括getopts,以便不关心参数的顺序。假设我有-location 后跟一个参数,-grep 后跟一个参数,-def_location 后跟没有参数。
在这种情况下我该如何使用getopts?
【问题讨论】:
-
使用非保留名称的函数怎么样?
my_function可以是无害的。 -
是的,对不起!它实际上称为 pl_function
-
你有一个useless use of echo,但你没有正确引用你
echo的变量。该函数可能只是echo "$1" | awk -F '\.' '{ print $2 }',但另请参阅@JohnKugelman 的答案。 -
您可能应该发布一个关于 getopts 的单独问题。请每个问题一个问题。
-
更简单,
pl_function () { node=${1#*.}; echo "${node%.*}"; }(至少,不需要外部进程)。
标签: shell awk command-line-arguments