这个问题更多的是针对在bash函数中处理参数的最佳实践。让我们看一下以下代码:
#!/bin/bash
do_something () {
echo "$1"
}
do_something_1 () {
echo "$1"
}
do_something_2 () {
echo "$1"
}
do_something_3 () {
echo "$1"
}
echo "$1"
do_something
do_something "hi"
do_something_2 "hello"
do_something_3 "bye"
让我们想象一下我正在调用脚本:
./ myscript.sh param1
这将输出:
param1 #First parameter passed to the string
#Nothing, as I am passing nothing to do_something
hi #first parameter of do_something
hello #first parameter of do_something_2
bye #first parameter of do_something_3
但是,如果我看一下这些函数,所有这些函数都称为“ $ 1”。现在,我明白了这一点,但这似乎不可读。如果代码更大,该怎么办?我将需要转到函数的调用者以查看传递了什么参数(并忽略传递给脚本的参数),并且越来越难以知道/维护传递的参数中的内容。
答案 0 :(得分:4)
对于较大的功能,我要做:
function myfunc() # source dest [options]
{
local source="$1"
local dest="$2"
local options="$3"
# Now i have named local variables
....
}
答案 1 :(得分:-1)
您可以尝试:
do_something "$1"
或者,如果您愿意的话,可以使用 php 这样的语言编程程序