我想知道天气可以从命令行和shell脚本中的函数传递参数
我知道可以使用
将参数从命令行传递给shell脚本$1 $2 ..
但我的问题是我的shell脚本需要接受来自命令行的参数以及shell脚本中的函数。
在下面找到我的shell脚本
#!/bin/bash
extractZipFiles(){
sudo unzip "$4" -d "$5"
if [ "$?" -eq 0 ]
then
echo "==>> Files extracted"
return 0
else
echo "==>> Files extraction failed"
echo "$?"
fi
}
coreExtraction(){
extractZipFiles some/location some/other/location
}
coreExtraction
echo "====> $1"
echo "====> $2"
echo "====> $3"
echo "====> $4"
echo "====> $5"
我通过传递
来执行我的shell脚本sudo sh test.sh firstargument secondargument thirdargument
答案 0 :(得分:2)
您可以使用以下内容转发原始参数:
...
coreExtraction () {
extractZipFiles "$@" some/location some/other/location
}
coreExtraction "$@"
...
要从函数内部访问原始脚本参数,必须在调用函数之前保存它们,例如,在数组中:
args=("$@")
some_function some_other_args
在some_function
内,脚本参数将位于${args[0]}
,${args[1]}
,依此类推。他们的号码是${#a[@]}
。
答案 1 :(得分:1)
只需将参数从命令行调用传递给函数
即可coreExtraction "$1" "$2" "$3"
# or
coreExtraction "$@"
并将其他参数添加到它们
extractZipFiles "$@" some/location some/other/location