Difference between revisions of "BASH/C2/Command-Line-arguments-and-Quoting/English"
Nancyvarkey (Talk | contribs) |
|||
Line 21: | Line 21: | ||
* '''Command line Arguments '''and | * '''Command line Arguments '''and | ||
* '''Quoting''' | * '''Quoting''' | ||
− | |||
− | |||
|- | |- | ||
Line 51: | Line 49: | ||
'''Command Line arguments''' | '''Command Line arguments''' | ||
− | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| * '''Shell script''' can accept '''arguments''' from the '''command line'''. | + | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| |
− | * An ''' | + | * '''Shell script''' can accept '''arguments''' from the '''command line'''. |
+ | * An '''argument''' is passed to the '''program''' being called. | ||
* Any number of '''arguments''' can be passed to a '''program'''. | * Any number of '''arguments''' can be passed to a '''program'''. | ||
− | |||
− | |||
|- | |- | ||
Line 98: | Line 95: | ||
|- | |- | ||
− | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| | + | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Switch to the terminal. |
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Let us execute the program and see. | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Let us execute the program and see. | ||
Switch to the terminal. | Switch to the terminal. | ||
− | First make it executable by typing, | + | |- |
+ | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Type chmod plus x arg.sh | ||
+ | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| First make it executable by typing, | ||
− | '''chmod | + | '''chmod space plus x space arg.sh''' |
and press '''Enter''' | and press '''Enter''' | ||
− | Now type, | + | |- |
+ | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Type | ||
+ | |||
+ | '''./arg.sh''' | ||
+ | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Now type, | ||
'''dot slash arg.sh''' | '''dot slash arg.sh''' | ||
Line 133: | Line 136: | ||
'''echo "second arg: $2"''' | '''echo "second arg: $2"''' | ||
− | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| | + | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| |
'''$2''' '''(Dollar two) '''represents the second '''argument''' passed to the '''program'''. | '''$2''' '''(Dollar two) '''represents the second '''argument''' passed to the '''program'''. | ||
Line 142: | Line 145: | ||
|- | |- | ||
− | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| | + | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Click on Save. |
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Now click on '''Save''', | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Now click on '''Save''', | ||
− | Let us execute the program and see. | + | |- |
+ | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Press the uparrow key>> press '''Enter''' | ||
+ | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Let us execute the program and see. | ||
− | Press the uparrow key and press Enter | + | Press the uparrow key and press '''Enter''' |
|- | |- | ||
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| | ||
− | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| We see that the | + | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| We see that the zeroeth '''argument''' is printed. |
− | But the first, second and third ''' | + | But the first, second and third '''arguments''' are blank. |
− | This is because the ''' | + | This is because the '''command line arguments '''are given during execution. |
|- | |- | ||
− | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| | + | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Press the uparrow key and type: '''sunday monday and tuesday.''' |
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Hence press the uparrow key and type: | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Hence press the uparrow key and type: | ||
Line 165: | Line 170: | ||
Press '''Enter''' | Press '''Enter''' | ||
− | You can see that the first second and third '''arguments''' are: | + | |- |
+ | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| | ||
+ | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| You can see that the first second and third '''arguments''' are: | ||
'''sunday monday and tuesday''' | '''sunday monday and tuesday''' | ||
Line 171: | Line 178: | ||
|- | |- | ||
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| | ||
− | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Now switch back to our editor | + | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Now switch back to our editor. Press '''Enter''' |
Now type the line as shown here. | Now type the line as shown here. | ||
Line 195: | Line 202: | ||
|- | |- | ||
− | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| | + | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Click on Save. |
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Now click on '''Save.''' | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Now click on '''Save.''' | ||
− | Let us execute the program. | + | |- |
+ | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Switch to the '''terminal.''' | ||
+ | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"|Let us execute the program. | ||
− | Switch to the | + | Switch to the '''terminal'''. |
− | Let me clear the prompt. | + | |- |
+ | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Type '''clear''' | ||
+ | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"|Let me clear the '''prompt'''. | ||
|- | |- | ||
Line 209: | Line 220: | ||
|- | |- | ||
− | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| | + | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Type, '''dot slash arg.sh''' '''1 to 13.''' |
− | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Hence | + | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Hence type, '''dot slash arg.sh''' '''1 to 13.''' |
Now press''' Enter''' | Now press''' Enter''' | ||
Line 218: | Line 229: | ||
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| You can see that the 12th''' argument''' is '''12.''' | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| You can see that the 12th''' argument''' is '''12.''' | ||
− | Come back to our editor. | + | |- |
+ | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Go back to the editor. | ||
+ | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Come back to our editor. | ||
And type the line as shown here. | And type the line as shown here. | ||
Line 224: | Line 237: | ||
|- | |- | ||
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| '''echo "total args: $#" ''' | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| '''echo "total args: $#" ''' | ||
− | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| '''$# (Dollar hash)''' gives the total number of '''arguments''' that have been passed to a program | + | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| '''$# (Dollar hash)''' gives the total number of '''arguments''' that have been passed to a program. |
|- | |- | ||
Line 232: | Line 245: | ||
Let us execute. | Let us execute. | ||
− | Switch to the | + | |- |
+ | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Switch to the terminal. | ||
+ | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Switch to the terminal. | ||
|- | |- | ||
Line 240: | Line 255: | ||
Press the uparrow key and press '''Enter.''' | Press the uparrow key and press '''Enter.''' | ||
− | We can see that the total '''arguments''' are '''13.''' | + | |- |
+ | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| | ||
+ | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"|We can see that the total '''arguments''' are '''13.''' | ||
− | Now switch to the editor. | + | |- |
+ | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"|Switch to the editor. | ||
+ | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"|Now switch to the editor. | ||
Press '''Enter''' and '''type''' the lines as shown here. | Press '''Enter''' and '''type''' the lines as shown here. | ||
Line 260: | Line 279: | ||
− | We will test this with the help of a simple''' for '''loop. | + | |- |
+ | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Highlight the for loop. | ||
+ | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| We will test this with the help of a simple''' for '''loop. | ||
Line 269: | Line 290: | ||
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Now click on '''Save.''' | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Now click on '''Save.''' | ||
− | Switch to the | + | Switch to the terminal. |
+ | |||
+ | |- | ||
+ | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Type clear. | ||
+ | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| | ||
Let me clear the prompt. | Let me clear the prompt. | ||
− | Now let us type, '''dot slash arg.sh space sunday monday and tuesday''' | + | |- |
+ | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Type, '''./arg.sh sunday monday and tuesday''' | ||
+ | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Now let us type, '''dot slash arg.sh space sunday monday and tuesday''' | ||
Press''' Enter''' | Press''' Enter''' | ||
Line 279: | Line 306: | ||
|- | |- | ||
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| | ||
− | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| You can see that the total number of '''arguments''' are '''3 | + | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| You can see that the total number of '''arguments''' are '''3''' as we have passed 3 '''arguments''' to our program. |
− | + | |- | |
− | + | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| | |
− | As already said '''$*''' will print all the '''arguments''' on a | + | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"|As already said '''$*''' will print all the '''arguments''' on a single line. |
|- | |- | ||
Line 291: | Line 318: | ||
We see that''' '''all the '''arguments''' on a '''''single line'''.'' | We see that''' '''all the '''arguments''' on a '''''single line'''.'' | ||
− | Now move back to our program and '''type''' the lines as shown here. | + | |- |
+ | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| | ||
+ | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Now move back to our program and '''type''' the lines as shown here. | ||
|- | |- | ||
Line 304: | Line 333: | ||
'''done''' | '''done''' | ||
− | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| '''$@ (Dollar at)''' will also print all the '''arguments'''. | + | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| '''$@ (Dollar at)''' will also print all the '''arguments'''. |
+ | However, this time each '''argument''' will be on a '''''separate line'''.'' | ||
− | This is another '''for''' loop, which will print each '''argument''' in a | + | |
+ | |- | ||
+ | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Highlight the other for loop | ||
+ | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| This is another '''for''' loop, which will print each '''argument''' in a separate line. | ||
|- | |- | ||
Line 313: | Line 346: | ||
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Let us see how. Click on '''Save''' | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Let us see how. Click on '''Save''' | ||
− | Switch to the | + | Switch to the terminal. |
− | Press the''' uparrow key.''' | + | |- |
+ | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| | ||
+ | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"|Press the''' uparrow key.''' | ||
Press''' Enter''' | Press''' Enter''' | ||
Line 323: | Line 358: | ||
|- | |- | ||
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| | ||
− | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| These are the ''' | + | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| These are the '''arguments''' printed by '''$@.''' |
− | '''$@''' prints each '''argument''' on | + | '''$@''' prints each '''argument''' on separate line. |
This is the output for the 2nd '''for loop.''' | This is the output for the 2nd '''for loop.''' | ||
Line 331: | Line 366: | ||
|- | |- | ||
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| | ||
− | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Now lets move on to quoting in '''BASH''' | + | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Now lets move on to '''quoting''' in '''BASH''' |
Switch to the slides. | Switch to the slides. | ||
Line 344: | Line 379: | ||
# '''Single quote''' | # '''Single quote''' | ||
# '''Backslash''' | # '''Backslash''' | ||
− | |||
− | |||
|- | |- | ||
Line 351: | Line 384: | ||
'''Double Quote''' | '''Double Quote''' | ||
− | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| * '''Double quote '''substitutes the value of '''variables''' and '''commands''' | + | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| |
+ | * '''Double quote '''substitutes the value of '''variables''' and '''commands''' | ||
* Example: '''echo “Username is $USER”''' | * Example: '''echo “Username is $USER”''' | ||
* It displays your '''username '''on the system. | * It displays your '''username '''on the system. | ||
− | |||
− | |||
|- | |- | ||
− | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Switch to '''terminal>>'''Type | + | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Switch to '''terminal>>'''Type clear>> press Enter''' |
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Switch to '''Terminal.''' | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Switch to '''Terminal.''' | ||
− | + | Let me clear the prompt. | |
+ | |- | ||
+ | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"|'''Type '''echo “Username is $USER”>> press Enter''' | ||
+ | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"|Now type | ||
+ | '''echo space within double quotes Username space is dollar''USER'' ''' in capitals. | ||
− | + | ||
+ | Press '''Enter''' | ||
|- | |- | ||
Line 374: | Line 411: | ||
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| The '''username '''of the system is printed. | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| The '''username '''of the system is printed. | ||
− | The output | + | The output will vary according to your system. |
'''<nowiki><<PAUSE>></nowiki>''' | '''<nowiki><<PAUSE>></nowiki>''' | ||
− | + | Now move back to slides. | |
|- | |- | ||
Line 384: | Line 421: | ||
'''Single Quote''' | '''Single Quote''' | ||
− | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| * '''Single quotes''' preserves the literal meaning of each character of the given string. | + | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| |
+ | * '''Single quotes''' preserves the literal meaning of each character of the given string. | ||
* It is used to turn off special meaning of all characters. | * It is used to turn off special meaning of all characters. | ||
− | |||
− | |||
|- | |- | ||
Line 393: | Line 429: | ||
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Switch to the '''Terminal.''' | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Switch to the '''Terminal.''' | ||
− | + | Type '''echo space within single quote Username is dollar USER''' in capitals | |
− | + | Press '''Enter''' | |
|- | |- | ||
Line 416: | Line 452: | ||
'''<nowiki><<PAUSE>></nowiki>''' | '''<nowiki><<PAUSE>></nowiki>''' | ||
− | + | Switch back to our slides. | |
|- | |- | ||
Line 423: | Line 459: | ||
'''Backslash''' | '''Backslash''' | ||
− | + | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| | |
− | + | * '''Backslash''' removes the special meaning from a single character | |
− | + | ||
− | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| * '''Backslash''' removes the special meaning from a single character | + | |
* It is used as an '''escape character''' in '''BASH''' | * It is used as an '''escape character''' in '''BASH''' | ||
− | |||
− | |||
|- | |- | ||
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| '''Switch to terminal>>'''Type '''echo ''Username is \$USER''>> press Enter''' | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| '''Switch to terminal>>'''Type '''echo ''Username is \$USER''>> press Enter''' | ||
− | |||
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Switch to the '''Terminal. ''' | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Switch to the '''Terminal. ''' | ||
− | Type '''echo space within double quote Username | + | Type '''echo space within double quote Username is backslash dollar USER ''' in capitals |
− | Since we have given double quotes, we expect the '''echo''' command to display the username. | + | Since we have given double quotes, we expect the '''echo''' command to display the '''username'''. |
Line 465: | Line 496: | ||
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| This brings us to the end of this tutorial. | | style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| This brings us to the end of this tutorial. | ||
− | Let us switch back to slides. | + | Let us switch back to our slides. |
Let us summarize. | Let us summarize. | ||
Line 477: | Line 508: | ||
* '''Command line arguments''' | * '''Command line arguments''' | ||
* Functionality of '''Double quote''', '''Single quote '''and '''Backslash''' | * Functionality of '''Double quote''', '''Single quote '''and '''Backslash''' | ||
− | |||
− | |||
|- | |- |
Revision as of 22:58, 2 May 2014
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. |