BASH/C3/Using-File-Descriptors/English
Title of script: Using file descriptors
Author: Lavitha Pereira and Ashwini Patil
Keywords: Video tutorial, file descriptors to file, closing file descriptors
|
|
Display Slide 1 | Dear friends, Welcome to the spoken tutorial on Using file descriptors |
Display Slide 2 | In this tutorial, we will learn to
|
Display Slide 3
Prerequisites |
To follow this tutorial you should have knowledge of Shell Scripting in BASH.
If not, for relevant tutorials please visit our website which is as shown,(http://www.spoken-tutorial.org) |
Display Slide 4
System requirements |
For this tutorial I am using
Please note, GNU Bash version 4 or above is recommended for practice. |
Introduction
Slide 5 |
Let us start with an introduction.
We have already studied about file descriptors in the previous tutorial.
|
Slide 6
Syntax: exec [File descriptor] > filename |
The syntax to assign a file descriptor to an output file is:
exec [File descriptor] > filename
I have a code file with the name fdassign.sh
|
#!/usr/bin/env bash | The first line is the shebang line. |
exec 3> output.txt
|
The exec command replaces the current shell process.
This will write the output to the output.txt file.
|
echo "Welcome to BASH learning" >&3
|
The string "Welcome to BASH learning" is sent to the file output.txt
This is done via file descriptor 3.
|
date >&3
|
Each new string will be appended to the file.
We will append the current system date to the output.txt file.
date SPACE greater-than symbol ampersand sign 3
|
exec 3<&- | Here we close the file descriptor.
|
CTRL+ALT+T keys | Let us execute the code and see the output.
Open the terminal using CTRL+ALT+T keys. |
Type:
chmod +x fdassign.sh ./fdassign |
Type:
chmod +x fdassign.sh ./fdassign |
cat output.txt | Let us check the output now by typing.-
cat output.txt
|
Type:
echo “Hi” > &3 |
Let us go back to the editor.
echo “Hi” > &3 |
Click on Save.
Let us execute the script once again and see what happens. | |
./fdassign | On the terminal, press the uparrow key, to recall the previous command
./fdassign
|
./fdassign.sh: line 6: 3: Bad file descriptor | We see an error
Bad file descriptor |
Cut
echo "hiii" >&3 Paste above |
Let us fix this error.
I will cut the last line of code and paste it below the date command |
./fdassign.sh | Click on Save.
./fdassign.sh
|
cat output.txt | Now let us open the output.txt file.
cat output.txt |
Welcome to BASH learning
Fri Aug 8 15:02:51 IST 2014 Hi |
We can see the output.
The string Hi is displayed at the end.
|
Now we will assign the file descriptor to the input file.
| |
[Highlight]
exec 3< output.txt cat <&3 exec 3<&- |
This is the exec command.
exec 3< output.txt will open the file for reading.
|
chmod +x fdread.sh
./fdread.sh |
Now let us execute this shell script.
chmod +x fdread.sh
|
Welcome to BASH learning
Fri Aug 8 15:12:06 IST 2014 Hi |
We can see the output on the terminal.
|
This brings us to the end of this tutorial. | |
Summary slide 7 | Come back to the slides.
Let us summarize. In this tutorial we learnt to,
|
Assignment Slide 8 | As an assignment,
Try to
|
Display Slide 9
http://spoken-tutorial.org /What\_is\_a\_Spoken\_Tutorial About the Spoken Tutorial Project |
Watch the video available at the link shown below.
|
Display Slide 10
Spoken Tutorial Workshops |
The Spoken Tutorial Project Team
For more details, please write to contact@spoken-tutorial.org |
Display Slide 11
Acknowledgement |
Spoken Tutorial Project is a part of the Talk to a Teacher project.
|
Display Slide 12 | The script has been contributed by FOSSEE and Spoken-Tutorial teams.
Thank you for joining. |