Difference between revisions of "BASH/C2/Command-Line-arguments-and-Quoting/English"
Nancyvarkey (Talk | contribs) |
|||
Line 387: | Line 387: | ||
* '''Double quote '''substitutes the value of '''variables''' and '''commands''' | * '''Double quote '''substitutes the value of '''variables''' and '''commands''' | ||
* Example: '''echo “Username is $USER”''' | * Example: '''echo “Username is $USER”''' | ||
− | * It displays | + | * It displays the '''username '''on the system. |
|- | |- |
Latest revision as of 10:24, 16 July 2015
Title of script: Command line arguments and Quoting
Author: FOSSEE and spoken-tutorial team
Keywords: Video tutorial, Command Line Arguments, Single quote, Double quote, Backslash
|
|
---|---|
Display Slide | Welcome to the spoken tutorial on Command line arguments and Quoting in BASH |
Display Slide | In this tutorial, we will learn about
|
Display Slide
Prerequisites
|
To follow this tutorial, you should be familiar with the Linux Operating System.
|
Display Slide
System Requirements |
For this tutorial I am using
GNU Bash version 4 or above is recommended for practise. |
Display slide :
Command Line arguments |
|
Press Ctrl+Alt+T | Let us open the terminal by pressing Ctrl+Alt+T keys simultaneously on your keyboard. |
On terminal>> Type gedit arg.sh&>> press Enter | I have already written the code in the file named arg.sh
gedit space arg.sh space ampersand sign
Now, Press Enter. |
The text editor is opened.
Let me explain the code now. | |
#!/bin/bash | This is the shenbang or a bang line. |
[highlight]
echo "zeroth arg: $0" |
This line will print the Zeroth argument.
Here, $0 (Dollar zero) will print the name of the shell script. This in turn means that, the zeroth argument is the name of the program itself. |
Switch to the terminal. | Let us execute the program and see.
Switch to the terminal. |
Type chmod plus x arg.sh | First make it executable by typing,
chmod space plus x space arg.sh and press Enter |
Type
./arg.sh |
Now type,
dot slash arg.sh |
The output is displayed as:
Zeroth argument is arg.sh | |
Now come back to our editor and type the three lines as shown here. | |
[highlight]
echo "first arg: $1" |
$1 (Dollar one) represents the first argument passed to the program from the command line. |
[highlight]
echo "second arg: $2" |
$2 (Dollar two) represents the second argument passed to the program. |
[highlight] echo "third arg: $3" | $3 (Dollar three) represents the third argument. |
Click on Save. | Now click on Save, |
Press the uparrow key>> press Enter | Let us execute the program and see.
Press the uparrow key and press Enter |
We see that the zeroeth argument is printed.
But the first, second and third arguments are blank. This is because the command line arguments are given during execution. | |
Press the uparrow key and type: sunday monday and tuesday. | Hence press the uparrow key and type:
sunday monday and tuesday. Press Enter |
You can see that the first second and third arguments are:
sunday monday and tuesday | |
Now switch back to our editor. Press Enter
Now type the line as shown here. | |
[highlight] echo "twelveth arg: ${12}" | $12 (Dollar twelve) represents the twelveth argument. |
[highlight again!!]
echo "twelveth arg: ${12}"
|
To write an argument greater than 9, we need to use curly brackets.
|
Click on Save. | Now click on Save. |
Switch to the terminal. | Let us execute the program.
Switch to the terminal. |
Type clear | Let me clear the prompt. |
Now we need to give 12 or 13 arguments to the program. | |
Type, dot slash arg.sh 1 to 13. | Hence type, dot slash arg.sh 1 to 13.
Now press Enter |
You can see that the 12th argument is 12. | |
Go back to the editor. | Come back to our editor.
And type the line as shown here. |
echo "total args: $#" | $# (Dollar hash) gives the total number of arguments that have been passed to a program. |
Now click on Save.
Let us execute. | |
Switch to the terminal. | Switch to the terminal. |
Let us execute.
Press the uparrow key and press Enter. | |
We can see that the total arguments are 13. | |
Switch to the editor. | Now switch to the editor.
Press Enter and type the lines as shown here. |
echo "Args(dollar *): $*"
do echo “$arg” done |
$* (Dollar asterix) will print all the arguments on a single line.
|
Highlight the for loop. | We will test this with the help of a simple for loop.
|
Now click on Save.
Switch to the terminal. | |
Type clear. |
Let me clear the prompt. |
Type, ./arg.sh sunday monday and tuesday | Now let us type, dot slash arg.sh space sunday monday and tuesday
Press Enter |
You can see that the total number of arguments are 3 as we have passed 3 arguments to our program. | |
As already said $* will print all the arguments on a single line. | |
And this is the output for the for loop.
We see that all the arguments on a single line. | |
Now move back to our program and type the lines as shown here. | |
echo "Args(dollar @): $@"
do echo “$arg” done |
$@ (Dollar at) will also print all the arguments.
However, this time each argument will be on a separate line.
|
Highlight the other for loop | This is another for loop, which will print each argument in a separate line. |
Let us see how. Click on Save
Switch to the terminal. | |
Press the uparrow key.
Press Enter You can see the difference now. | |
These are the arguments printed by $@.
$@ prints each argument on separate line. This is the output for the 2nd for loop. | |
Now lets move on to quoting in BASH
Switch to the slides. | |
Display slide
Quoting |
There are three types of quotes
|
Display Slide
Double Quote |
|
Switch to terminal>>Type clear>> press Enter | Switch to Terminal.
Let me clear the prompt. |
Type echo “Username is $USER”>> press Enter | Now type
echo space within double quotes Username space is dollarUSER in capitals.
|
Output:
Highlight “Username is lavitha” |
The username of the system is printed.
The output will vary according to your system. <<PAUSE>> Now move back to slides. |
Display Slide
Single Quote |
|
Switch to terminal>>Type echo 'Username is $USER'>> press Enter | Switch to the Terminal.
Type echo space within single quote Username is dollar USER in capitals Press Enter |
Output
Username is $USER .
|
The output is Username is $USER
In this example, it prints all the characters which appear within the single quotes. It does not substitute the value of variable $USER
Switch back to our slides. |
Display Slide
|
|
Switch to terminal>>Type echo Username is \$USER>> press Enter
|
Switch to the Terminal.
Type echo space within double quote Username is backslash dollar USER in capitals
|
Output:
Highlight Username is $USER |
The output is Username is $USER
In this example the backslash removes the special meaning of (Dollar) $ symbol.
<<PAUSE>> |
This brings us to the end of this tutorial.
Let us switch back to our slides. Let us summarize. | |
Display slide
Summary |
In this tutorial we learnt,
|
Display Slide
|
Watch the video available at the link shown below
It summarises the Spoken Tutorial project If you do not have good bandwidth, you can download and watch it |
Display Slide
Spoken Tutorial Workshops |
The Spoken Tutorial Project Team
Conducts workshops using spoken tutorials Gives certificates to those who pass an online test For more details, please write to contact@spoken-tutorial.org |
Display Slide
Acknowledgement |
Spoken Tutorial Project is a part of the Talk to a Teacher project
It is supported by the National Mission on Education through ICT, MHRD, Government of India More information on this Mission is available at: http://spoken-tutorial.org\NMEICT-Intro |
The script has been contributed by FOSSEE and spoken-tutorial Team.
Thank you for joining. |