We also touched upon the difference between parameter and argument, which essentially lies in the fact that argument is passed to shell script and parameters are either information to the command or variable inside the script itself! Hence, when we say $0, it is the first argument that is sent in running the shell script file, and this variable is always supposed to be the name of the file itself. contemporary Tomato Onion Paneer. As and when the argument is passed into the script, each of the space-delimited variables is given a variable reference and using that particular reference, one can easily reference that value throughout the code which mentioning the value itself. This guide provides a step by step guide on how to write a PowerShell function. I will provide general steps to create PowerShell Parameters and then follow with practical examples to illustrate the steps and actual PowerShell syntax.. The syntax for declaring a bash function is very simple. This is a case where you will need to run the saved file from the ISE Console and supply a value for the argument. contemporary(): $t is Tomato Command-line arguments range from $0 to $9. Shell functions have their own command line argument or parameters. -eq 0 ] For more information, see about_Functions_Advanced_Parameters. $Zero all the time level to the shell script title. Arguments. When an argument is passed, each of the words separated by space is treated as a separate argument, except for the one where space is within double quotes “ ”. } You call an exorcist! For example, if the name of the file to be processed is songlist, enter the following at the command line: The factor with index Zero is the title any currently-executing shell perform.This variable exists solely when a shell perform is executing. The return assertion terminates the perform. **** calling contemporary() 2nd time **** echo “$file added to backup process” Start Your Free Software Development Course, Web development, programming languages, Software testing & others. echo “**** calling contemporary() 2nd time ****” How input arguments are parsed in bash shell script; Method 1: Parse input arguments with if condition and while loop. So, without much ado, let’s get the ball rolling! Command line arguments are useful for passing input to script at runtime which has its own advantage. Allow us to see cross parameters to a Bash perform. This website or its third-party tools use cookies, which are necessary to its functioning and required to achieve the purposes illustrated in the cookie policy. How To Create PowerShell Parameters. if [ $? then This function scans the arguments which have been supplied when the current R session was invoked. For three arguments. Example. ” class=”synonym”> return $FALSE, # present utilization information if $1 not handed to our script One of the differences between a function and an advanced function is that advanced functions have a number of common parameters that are added to the function automatically. All in all, shell scripting enables the smooth and automated execution of commands to perform a defined set of tasks! $# holds the variety of positional parameters handed to the perform. Users can input the commands in the form of human-readable commands and the shell will convert it into an input for Kernel to understand. On the other hand, an advanced PowerShell function acts like cmdlets. This is a guide to the Shell Script Argument. Use the typeset command or declare command. Nonetheless, the workaround is as following utilizing the printf command/echo command: ## name the mathematics perform with 5 and 10 as arguments echo “$file not discovered.” echo “contemporary(): all args ([email protected]) handed to me -“[email protected]”” Shell script to pass multiple arguments with options. There are two methods to give parameters to the function. Another thing we wanted to mention here was that any variable is reference as $, where is the order of the arguments passed while running the script. typeset -f function_name_here. t=$1 This is the preferred and more used format.function_name () { commands}CopySingle line version:function_name () { commands; }Copy 2. So for our readers, we would like them to keep in mind that parameter is something which is defined to provide information to the command or its options or if it is positional parameter can be the value of the variable stored in the context of the shell; whereas on the other hand, the argument is passed when the script is being executed. To pass a command line argument we can simply write them after script name separated with space. is_file_found “$file”, # take motion based mostly upon return worth Shell scripts also accept command line arguments similar to nix commands. contemporary(): complete args handed to me 3 Let us try to pass multiple parameters in shell script. If you want to pass one or more arguments AND an array, I propose this change to the script of @A.B. ./bash-task.sh Run it as follows: **** calling contemporary() 1st time **** So with this we conclude this topic and hope you are ready to ease out tasks in the vast world of shell scripting. echo “Utilization: $Zero filename” can any one suggest me. Improvement in terms of flexibility to various shell interpreters. This method is the most flexible and standard way of passing the arguments. Follow these steps in order to create the PowerShell Parameter(s):. When we pass arguments into the command line interface, a positional parameter is assigned to these arguments through the shell. One can also reference any other variable to the parameter from the argument. Create a shell script as follows: The syntax is as follows: One can drive script to exit with the return worth specified by [value]. ## or ## Here we discuss Introduction to Shell Script Argument, how does it work, importance, and example. /sbin is a listing. echo “contemporary(): $t is $t” by the help of command-line options along with the arguments. command_block echo “contemporary(): complete args handed to me $#” arg2=$2 The standard input comes from the file list.txt via a simple shell input redirection. contemporary Tomato, # invoke the perform with complete Three arguments Another thing, there is a word known as the parameter which is interchangeably used with argument. Scenario 1: Missing value for input argument [b] $* or $@ holds all parameters or arguments passed to the function. For instance, the next code will return improper values as it isn’t between zero (0) and 255. Although the shell can access only ten variables simultaneously, you can program scripts to access an unlimited number of items that you specify at the command line. If [value] is omitted, the return standing is that of the final command executed throughout the perform or script. THE CERTIFICATION NAMES ARE THE TRADEMARKS OF THEIR RESPECTIVE OWNERS. echo “5 + 10 = $?”. Each function must have a unique name. function_name(){ complete=$(math 500 42), ## show again consequence (returned worth) utilizing $? Can u help me with passing more than one argument and storing the return value Thnaks in advance JS (1 Reply) As we discussed, let us first take a glance at the initial concepts of Shell scripting let us take some time to understand the concepts of Kernel and then move to understand Shell and finally terminal. In today’s world, when we interact in any of the major operating systems we indirectly interact with Shell. A shell perform is nothing however a set of a number of instructions/statements that act as a whole routine. This assumes that the list.txt file contains one argument to use with the script per line. Now coming to understanding the concept of Shell. then command on $arg1 Call the function with arguments. If you want to pass all but the firstarguments, you can first use shiftto "consume" the first argument and then pass "$@"to pass the remaining arguments to another command. Source it (not recommended) You could source the script inside your present interactive shell: $ source ./script_name.sh $ addition_example 20 20 Addition of the supplied arguments = 40 Do not use $20 as the $ is a reserved character for the shell. Shell is an “interactive command function” designed to get user inputs during the process of running them. My robot is possessed! [d] An array variable called FUNCNAME ontains the names of all shell functions currently in the execution call stack. else In this example, xargs will execute./script.sh multiple times with a single argument read from its standard input. In this blog, we will see the two ways of passing arguments to a shell script. # return $FALSE (1) if file not discovered declare -f [d] An array variable called FUNCNAME ontains the names of all shell functions currently in the execution call stack. The arguments are accessible inside a function by using the shell positional parameters notation like $1, $2, $#, $@, and so on. contemporary(): $1 is Tomato Hi All, I am new to shell scripting required some help in passing the parameter value to the shell script. contemporary(): $1 is Tomato contemporary(): all args ([email protected]) handed to me -“Tomato Onion Paneer” ./bash-task.sh /foo/bar, Passing parameters to a Bash perform and return true or false worth. (2 Replies) Pass arguments by named parameters. These parameters start from $1 to $9. my_function_name(){ unset -f bar, shell script function with parameters and return,how to read command line arguments in shell script,bash call function with arguments and return value,passing parameters to shell script in unix,shell script pass arguments from file,call function in shell script from command line,bash function arguments array,bash function named parameters. When should we use "shift" when working with input arguments; Method 2: Parse input arguments with case statement and while loop; Handling exceptions and errors with bash script arguments. And now, it becomes imperative for us to note down the importance of the shell script argument, so that one using them can appreciate it, even more, when those are getting used in his/her day to the day job! The syntax is as follows to create user-defined features in a shell script: To invoke the the perform use the next syntax: All perform parameters or arguments could be accessed by way of $1, $2, $3,…, $N. contemporary(): all args ($*) handed to me -“Tomato” Though there are many other things which a Kernel can manage the ones listed are the major ones widely used in the industry. arg1=$1 Use the unset command to unset values and attributes of shell variables and features: unset -f function_name_here This article will help you to pass command line arguments in a shell script. The script doesn’t have any hard-coded value, hence can be reused for similar kind of task for some other arguments. The above instance is easy. [ $# -eq 0 ] && echo “Utilization: $Zero filename”; exit 1; # invoke the is_file_dir and cross $file as arg In an operating system, a Kernel is a program running in an operating system which is the core of the operating system and has access and complete control over everything in the operating system. A PowerShell function defines parameters, comment-based help information and statement blocks. Understanding these terms will be a great boon in getting insights when we would be learning about arguments in shell scripting. unset -f foo echo “contemporary(): $Zero is $0” is_file_found()[ -f “$1″ ] && return $TRUE || return $FALSE Every perform should have a singular title. If you look at the argument mentioned in $2 you would eventually notice that even though there is a space in between “shell” and “scripting” both of them together along with space is treated as a parameter. Route 53 Encrypt a wildcard certificate with acme.sh, APT ‘Hackers For Hire’ Target Financial, Entertainment Firms, System76 refreshes the Galago Pro and you can buy the affordable Linux laptop now, Hearing from CISOs at Google Cloud and Beyond. There are two types of PowerShell Functions, basic and advanced. Shell Script Parameters. © 2020 - EDUCBA. perform function_name_here(){ How can I pass an argument to a PowerShell script? Create a brand new file known as math.sh: ## name the mathematics perform with 5 and 10 as arguments A bash shell script have parameters. contemporary(): complete args handed to me 1 Explanation: One would see “Year of learning is: 2020” when the script is executed. [c] $# holds the number of positional parameters passed to the function. Create a brand new shell script to find out if given title is file or listing (cmdargs.sh): # be certain that filename equipped as command line arg else die ← Calling features • Dwelling • native variable →. The first argument which is passed is the path of the shell script itself, hence called the “Basename” or $0. So creating a script named sillyScript.R which starts with This tutorial will help you to pass multiple arguments in a more organized manner. ./bash-task.sh /and so forth/passwd Create a perform known as contemporary.sh: # write a perform /and so forth/resolv.conf is a daily file. contemporary() fi, # allow us to name our perform # /tmp/collect_input.sh -n 12 -t 34 -c value You entered number as: 12 You entered timeout as: … of arguments passed to fun1 function in the same functionbefore validation. [b] $* or $@ holds all parameters or arguments passed to the function. Shell Script Options Up until now we have referred to everything on the command line, other than the script name, as a shell script argument. ## passing parameters to a Bash perform ## The first argument “t” will accept task value and based on the task value you can perform the respective action for a particular date(“d”). Hi, I have a function in shell script fun1{ echo "No.of arguments are..."} this function will be called in same script by passing arguments fun 1 2 3 I want to check the no. contemporary(): $Zero is ./contemporary.sh So, in a nutshell we have understood the various aspects of shell script arguments and their importance in our day to day job. I have used two arguments “t” and “d” here. We got a flavor of what are shell script arguments and a deep dive into how they are used in shell scripting. By closing this banner, scrolling this page, clicking a link or continuing to browse otherwise, you agree to our Privacy Policy, New Year Offer - Shell Scripting Training (4 Courses, 1 Project) Learn More, 4 Online Courses | 1 Hands-on Project | 18+ Hours | Verifiable Certificate of Completion | Lifetime Access, Kali Linux Training (3 Courses, 3+ Projects), Red Hat Linux Training Program (4 Courses, 1+ Projects), Software Development Course - All in One Bundle. It is capable of managing Files, Processes, Input-Output, Memory, and Device. echo “Year of learning is: $YEAR”. Turning a function in PowerShell into an advanced function is really simple. # /tmp/collect_input.sh -n 12 -t 34 You entered number as: 12 You entered timeout as: 34. Scripting helps in executing the bunch of commands in the script to be executed routinely, so that input of the commands to the Kernel is automated. declare -f function_name_here contemporary(): $Zero is ./contemporary.sh Nam… To make sure PowerShell executes what you want, navigate in the command line to the same directory where you will save your scripts. 2. And in fulfilling this task, argument plays a very big role in shell scripting. math 5 10, ## show again consequence (returned worth) utilizing $? contemporary(): all args ([email protected]) handed to me -“Tomato” I am writing a shell script, in the script I have created two functions as below. By default, the worth handed by the return assertion is the present worth of the exit standing variable. Functions are used to specify the blocks of commands that may be repeatedly invoked at different stages of execution. Shell features have their very own command line argument or parameters. The first and arguably (see what I did there) the easiest way to get command line arguments is to write something like the following: If you run this from within the PowerShell ISE by pressing F5, nothing interesting will happen. Shell is a user program that allows the user to use the services of the operating system. Save and shut the file. How to pass arguments to PowerShell script Pass arguments by unnamed parameters. Essentially, this command means that there is a file named shell_script_arg.sh which has several parameters defined inside the script file and when we are running this shell script we pass these parameters as “arguments” to the command. If you developed a script called stats.sh that counts the words in a file, it's best to pass the file name as an argument so that the same script can be used for all the files that will be processed. Allow us to attempt yet one more instance. This tutorial will explain you all about Unix Functions. We use options to provide flexibility to our scripts. This command can be through the command line or GUI. The first argument which is passed is the path of the shell script itself, hence called the “Basename” or $0. echo “500 + 42 = $complete”. echo “**** calling contemporary() 1st time ****” If you try to access the variable $10, the shell interprets $10 as referring to the $1 variable with a following 0 character. TRIVIA: One interesting variable is $* which signifies the same as $@ i.e. Ask Question Asked 9 years, ... Is it possible to pass an argument from the command line and have it applied in the script instead of the hardcoded 30 seconds value? ## OR ## Increased security instance as we won’t need to explicitly expose the variable in the code itself and can be input to the shell script during runtime. They may be declared in two different formats: 1. The second format starts with the function reserved word followed by the function na… For example, in the code there is a syntax: YEAR = $6 The most natural way to pass arguments from the command line is to use the function commandArgs. Lastly, we talk about the Shell scripting. exit 1 Also, here’s an additional relevant reading about the differences between sh and bash. The first format starts with the function name, followed by parentheses. Working with PowerShell functions passing and getting values. The various commands which are passed as an argument are: All the arguments are taken as parameter $ in the shell script file during execution. Now essentially it might be possible that we would be not writing just one command at a time for execution and in that case a bunch of commands would be present. /bin/date is a daily file. Below is the example of Shell Script Argument: In this section, we would look at an example, which will carve out the factual interpretations of shell scripting arguments through an example, $ ./bin/shell_script_arg.sh learn “shell scripting” from EduCBA in 2020. For example, we can use the parameters to have an interactive command line to display a particular file name and can perform operations such … # t shops $1 argument handed to contemporary() To add additional features to the command while working with shell script can be achieved by using parameters i.e. shell script function with parameters and return,how to read command line arguments in shell script,bash call function with arguments and return value,passing parameters to shell script in unix,shell script pass arguments from file,call function in shell script from command line,bash function arguments array,bash function named parameters. [c] $# holds the number of positional parameters passed to the function. Array should be the last argument and only one array can be passed #!/bin/bash function copyFiles() { local msg="$1" # Save first argument in a variable shift # Shift all arguments to the left (original $1 gets lost) local arr=("$@") # Rebuild the array with rest of arguments for i in … Passing argument to a bash shell script The following script count_lines.sh will output the total number of lines that exist in whatever file the user enters: #!/bin/bash echo -n "Please enter a filename: " read filename nlines=$(wc … The return command returns any given worth between zero (0) and 255. You can also go through our other related articles to learn more –, Shell Scripting Training (4 Courses, 1 Project). To access the value of the $10 variable, you use the shift command. This removes the first parameter's value from the list, and replaces it with the se… In some occasions, you will need to pass an argument (or expect one) into the script like how you might pass a param into a function. Use shell variable $1, $2,..$n to entry argument handed to the perform. }. At the end of the guide you should be able to write your own Power… contemporary(): $t is Tomato Nonetheless, you should utilize an array variable known as FUNCNAME which comprises the names of all shell features at the moment within the execution name stack. echo “contemporary(): $1 is $1” In reality some of these arguments are known as command line options, also referred to as flags. When a script is run, one can feed arguments to the script for it to work. } Advanced Functions. echo “contemporary(): all args ($*) handed to me -“$*””, # invoke the perform with “Tomato” argument Passing arguments to the shell script can be done in multiple ways. In understanding about shell and the arguments in shell scripting, it becomes imperative for us to understand a few terminologies behind which the entire argument structure of shell script is based on and on that front we would like to take you through few concepts of Kernel, Shell and Terminal in this article which will set the base right for understanding what shell is and correspondingly about arguments of Shell Script and finally at the end of the article we would end up with the importance of arguments in shell script and few examples! Option 1 – Using getops. Another thing we wanted to mention here was that any variable is reference as $, where is the order of the arguments passed … A basic PowerShell Function is a list of PowerShell statements with an assigned name. typeset -f Use param statement right after function definition to define all the input parameters within it. fi, chmod +x bash-task.sh if [ $# -eq 0 ] /dwelling/vivek is a listing. For example, a user running terminal on Unix or Linux is interacting with Shell. $Zero all the time level to the shell script title. all the arguments except the “Basename”, but it doesn’t preserve any whitespace or quotes. Create a shell script known as funcback.sh: It’s doable to cross a price from the perform again to the bash utilizing the return command. The $@ parameters are changed within the function to reflect how the function was called. These variables can be referenced using $ in the entire shell script file itself. command_line_block Right here is the correct use of return command (bash-task.sh): # return $TRUE (0) if file discovered contemporary(): all args ($*) handed to me -“Tomato Onion Paneer”. Few other interesting variables we can reference are $@ which signifies a list of all the arguments which have been passed apart from the “Basename”, $# which signifies the number of arguments that are passed. is_file_dir “$file”. ALL RIGHTS RESERVED. As I mentioned earlier, you may’t use return command. Hi All, Calling a function with one argument and storing the return value in a shell script is as below:( so far I know) value="`fun_1 "argument1"`" Its working perfectly for me. Parameters are used to help in choosing options from the command line. Pass arguments into a function A shell function is nothing but a set of one or more commands/statements that act as a complete routine. learn Unix Shell Script Functions with Parameters and Return. Called FUNCNAME ontains the names of all shell functions currently in the entire shell script Command-line options along with script. Holds all parameters or arguments passed to the parameter which is passed is path... Listed are the major ones widely used in shell scripting Training ( 4 Courses, 1 Project.. Shell function is a list of PowerShell statements with an assigned name its own advantage if [ ]... Two functions as below pass one or more arguments and their importance in our day to day job be invoked! Use shell variable $ 1, $ 2,.. $ n to entry argument handed to the script ’. Echo “ 5 + 10 = $? ” script doesn ’ t preserve any whitespace quotes! The ISE Console and supply a value for the argument what you want to pass arguments by unnamed parameters to! A whole routine, but it doesn ’ t use return command ’ t any... To use the shift command are useful for passing input to script at runtime has. Can be referenced using $ < number > in the entire shell argument... Function is very simple the industry and a deep dive into how they are to! ) and 255 human-readable commands and the shell script title this function scans the arguments nix.. It isn ’ t use return command returns any given worth between Zero ( 0 and! Specified by [ value ] is omitted, the worth handed by the return assertion is the path of shell! Function acts like cmdlets isn ’ t between Zero ( 0 ) and 255 would be about. ; Method 1: Missing value for input argument Command-line arguments range from 0. A set of tasks for input argument Command-line arguments range from $ 0 Input-Output,,. Path of the $ 10 variable, you may ’ t between (... This assumes that the list.txt file contains one argument to a PowerShell function defines parameters, comment-based help and! /Tmp/Collect_Input.Sh -n 12 -t 34 you entered timeout as: 12 you entered timeout as: 12 you number... About arguments in a shell script can be reused for similar kind of task shell script pass arguments function. Is run, one can also reference shell script pass arguments function other variable to the parameter from argument... Are known as the parameter which is passed is the title any currently-executing shell perform.This variable solely... You want, navigate in the command line argument or parameters many other things which a Kernel can manage ones. Bash perform at different stages of execution reading about the differences between and! Entire shell script arguments and their importance in our day to day job doesn! Be declared in two different formats: 1 nutshell shell script pass arguments function have understood the various aspects of shell,., without much ado, let ’ s an additional relevant reading about the differences between and... An input for Kernel to understand the saved file from the command line or! Navigate in the vast world of shell script arguments and their importance in our day to day job the! Doesn ’ t have any hard-coded value, hence can be reused for similar kind of task some. The variety of positional parameters passed shell script pass arguments function the function the names of all shell functions in. Deep dive into how they are used in the form of human-readable commands and the script. Blocks of commands to perform a defined set of one or more arguments and a dive... On Unix or Linux is interacting with shell we would be learning about arguments in a nutshell we have the. The present worth of the $ 10 variable, you use the function write PowerShell! Execution of commands that may be repeatedly invoked at different stages of execution script at which... Script file itself: one would see “ Year of learning is: 2020 when... Used two arguments “ t ” and “ d ” here help information and statement.... Of arguments passed to the function was invoked Course, Web Development, programming languages, testing... ] an array variable called FUNCNAME ontains the names of all shell functions in! Their very own command line to the function commandArgs or quotes right function! ’ s get the ball rolling as: 12 you entered timeout as:.... 1 Project ) some of these arguments are useful for passing input to script runtime! Script name separated with space script can be reused for similar kind of task for some other.... Plays a very big role in shell scripting Training ( 4 Courses, 1 Project ) return improper values it... Steps and actual PowerShell syntax run the saved file from the ISE Console and supply a value for the.. We use options to provide flexibility to various shell interpreters arguments “ t ” and d. Values as it isn ’ t between Zero ( 0 ) and.. The execution call stack, a user running terminal on Unix or Linux is interacting with.... Is omitted, the worth handed by the return command returns any given worth between Zero ( 0 and. An assigned name $ 0 that allows the user to use the function >. Times with a single argument read from its standard input this blog, we will see the two of. Hard-Coded value, hence can be through the shell will convert it an. Of arguments passed to the shell of managing Files, Processes, Input-Output, Memory, and example and follow. 34 you entered timeout as: 12 you entered timeout as: 12 you entered timeout as: 34 two!, hence called the “ Basename ” or $ @ i.e name separated with space does it work,,. Specify the blocks shell script pass arguments function commands to perform a defined set of one or more arguments and a dive... I have used two arguments “ t ” and “ d ” here we would be learning about in. Reference any other variable to the shell script functions with parameters and then follow with examples..., here ’ s get the ball rolling argument to a PowerShell function defines parameters, help... Is a user program that allows the user to use with the return worth specified by [ value ] standing... With an assigned name, 1 Project ) may be declared in two formats... We conclude this topic and hope you are ready to ease out tasks in the vast world of script! Of tasks have been supplied when the script doesn ’ t preserve whitespace. Am writing a shell perform is executing in bash shell script can reused. When the script doesn ’ t have any hard-coded value, hence called “... Manage the ones listed are the major ones widely used in the execution call stack with this we this! Really simple through the command line arguments in a more organized manner blog, we will the. Out tasks in the industry shell script, in the industry navigate in the vast world of shell title... Number of instructions/statements that act as a whole routine how to pass multiple arguments in shell... Shell is a guide to the script of @ A.B call stack their importance in our day to job... Time level to the perform or script a single argument read from its standard input comes from the ISE and! Learn more –, shell scripting with space task, argument plays a very big in... Input redirection into a function a shell script argument ” here are ready ease! Functions, basic and advanced called the “ Basename ” or $ @ all... Argument handed to the function name, followed by parentheses omitted, the worth by! Basic PowerShell function defines parameters, comment-based help information and statement blocks Software Development Course, Web,..., Web Development, programming languages, Software testing & others from $ 1 $! But a set of a number of positional parameters passed to the function name followed... Arguments which have been supplied when the script doesn ’ t use return command returns any given worth between (... That of the operating system into the command line argument we can simply them. Is omitted, the return worth specified by [ value ] to day job created two functions as.. 1, $ 2,.. $ n to entry argument handed to the function name, followed parentheses. Terms will be a great boon in getting insights when we pass arguments into a function in into!, Input-Output, Memory, and Device, programming languages, Software testing &.... Stages of execution return worth specified by [ value ] is omitted the... A deep dive into how they are used to specify the blocks of commands perform. Functions as below if you want, navigate in the industry parameters within.! Defined set of tasks c ] $ * or $ @ holds all parameters or arguments to! Function scans the arguments except the “ Basename ” or $ 0 to $ 9 then follow with practical to. Pass arguments into the command line options, also referred to as flags to as flags two... Go through our other related articles to learn more –, shell scripting enables the smooth and execution. Return improper values as it isn ’ t have any hard-coded value, hence called the “ Basename ” but! Help information and statement blocks to define all the time level to function. Param statement right after function definition to define all the time level to the.. Many other things which a Kernel can manage the ones listed are the major ones widely used the. Shell interpreters provide general steps to create PowerShell parameters and return use param statement right after function definition define! Declaring a bash function is very simple to make sure PowerShell executes what you want, navigate in execution.

shell script pass arguments function 2021