从命令行传递参数,从shell脚本中传递参数

时间:2016-08-10 20:18:31

标签: linux bash shell ubuntu sh

我想知道天气可以从命令行和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 

2 个答案:

答案 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