# L5. Bash Scripting. Part 3 ## Read parameters * $0 is the script’s name. * $1 is the 1st parameter. * $2 is the 2nd parameter. ```bash= #!/bin/bash echo $0 # Script name echo $1 # 1st parameter echo $2 # 2nd parameter echo $3 # 3rd parameter ``` ```bash= ./myscript 5 10 15 ``` ```bash= #!/bin/bash total=$(( $1 + $2 )) echo First passed parameter is $1. echo Second passed parameter is $2. echo Total is $total. ``` ```bash= $ ./myscript 5 10 ``` --- ## Check parameters ```bash= #!/bin/bash if [ -n "$1" ]; then # If first parameter passed then print Hi echo Hi $1. else echo "No parameters found. " fi ``` --- ## Iterate over parameters :::info $# : How many parameters passed ${!#} $* : holds all the parameters as one value $@ : holds all the parameters as separate values so that you can iterate over them. ::: --- ## Getting user input ```bash= echo -n "What's your name: " read name echo "Hi $name," ``` ```bash= #!/bin/bash read -p "What's your name: " first last echo "Your data for $last, $first…" ``` ```bash= #!/bin/bash read -p "What's your name: " echo Hello $REPLY,. ``` #### Reading password ```bash= #!/bin/bash read -s -p "Enter password: " mypass echo "Your password is $mypass? " ``` --- ## Read files ```bash= #!/bin/bash while read line; do echo $line done <myfile ``` ```bash= #!/bin/bash count=1 # Get file content then pass to read command by iterating over lines using while command cat myfile | while read line; do echo "#$count: $line" count=$(($count + 1)) done echo "Finished" ```