Sponsored Content
Top Forums UNIX for Advanced & Expert Users What's your most useful shell? Post 302500168 by Corona688 on Sunday 27th of February 2011 06:46:11 PM
Old 02-27-2011
Quote:
Originally Posted by tetsujin
Wrong. The other time it knows it's done with a file descriptor is when that file descriptor is closed.
Which is the model we have already. Your point?
Quote:
So why should "exec $fd<&-" be the only way to tell the shell it's time to close a file descriptor?
A few good reasons:

1) Right now there's no "special" files in a shell, you can do as you please even with stdin/stdout/stderr. Adding new features that act in different ways would have to work around these basic three if you want "echo asdf | something" to still work, making the language much less orthogonal.

2) Making opening, closing, and inheriting files more complicated makes the whole process of piping data between commands more complicated since it uses the same files and mechanisms. (Unless, as above, you add special cases for compatibility, which makes the language a mess instead). This is supposed to be easy in a shell.

3) You're ignoring perfectly good existing features. The "exec" opening methods and explicit file descriptor numbers often aren't necessary at all. How's this for a scoped file descriptor that closes itself?

Code:
while read LINE
do
        echo "${LINE}"
done <filename


Last edited by Corona688; 02-27-2011 at 07:51 PM..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to run unix commands in a new shell inside a shell script?

Hi , I am having one situation in which I need to run some simple unix commands after doing "chroot" command in a shell script. Which in turn creates a new shell. So scenario is that - I need to have one shell script which is ran as a part of crontab - in this shell script I need to do a... (2 Replies)
Discussion started by: hkapil
2 Replies

2. AIX

Difference between writing Unix Shell script and AIX Shell Scripts

Hi, Please give me the detailed Differences between writing Unix Shell script and AIX Shell Scripts. Thanks in advance..... (0 Replies)
Discussion started by: haroonec
0 Replies

3. Linux

How to Start a Shell as Login shell instead of ordinary shell

Hi I tried with bash --login option. but the output is siva:~$ bash --login siva:~$ is there any way to make the shell ask for user id and password ( and login as different user instead of using sudo / su ) Thx in advance Siva (3 Replies)
Discussion started by: Sivaswami
3 Replies

4. Shell Programming and Scripting

Help need to make a shell script run for ffmpeg vhook watermaking in shell

i have a small problem getting a batxh shell script to run in shell this is the code the problem seems to be centered around the ffmpeg command, something maybe to do with the ' ' wrapping around the vhook part command this is a strange problem , if i take the ffmpeg command and... (1 Reply)
Discussion started by: wingchun22
1 Replies

5. Shell Programming and Scripting

How to run cmds after changing to a new env (shell) in a shell script

Hi, I am using HP-UNIX. I have a requirement as below I have to change env twice like: cadenv <env> cadenv <env> ccm start -d /dbpath ccm tar -xvf *.tar ccm rcv .... mv *.tar BACKUP but after I do the first cadenv <env> , I am unable to execute any of the later commands . ... (6 Replies)
Discussion started by: charlei
6 Replies

6. Shell Programming and Scripting

simple shell - how to get a parameter typed in a shell script

Hi, I am new to unix and using linux 7.2. I would like to create a script that would make it easyer for me to run my java programms. At the moment I have to type java myJavaprogram I am trying to write a script that will allow me to type something like this "myscript myJavaprogram" or maybe... (4 Replies)
Discussion started by: cmitulescu
4 Replies

7. Shell Programming and Scripting

calling 'n' number of shell scripts based on dependency in one shell script.

Hello gurus, I have three korn shell script 3.1, 3.2, 3.3. I would like to call three shell script in one shell script. i m looking for something like this call 3.1; If 3.1 = "complete" then call 3.2; if 3.2 = ''COMPlete" then call 3.3; else exit The... (1 Reply)
Discussion started by: shashi369
1 Replies

8. Shell Programming and Scripting

Any shell or hack that makes the shell command line take vi commands?

basically i'm tired of hitting the left arrow a few dozen times when correcting a mistake or modifying a history command i'd like to use vim style key shortcuts while on the command line so that a 55 moves the cursor 55 places to the left... and i want all the other vi goodies, search of... (3 Replies)
Discussion started by: marqul
3 Replies

9. UNIX for Dummies Questions & Answers

Shell script to read lines in a text file and filter user data Shell Programming and Scripting

sxsaaas (3 Replies)
Discussion started by: VikrantD
3 Replies

10. Shell Programming and Scripting

Pass C shell array to another C shell script(csh) and shell(sh)

Dear Friends, Please help me on this my script name is send.csh In this i have written the statement like this set args = ( city state country price ) I want to pass this array to another c shell called receiver.csh. and i want to use it in this c shell or how to pass to... (2 Replies)
Discussion started by: SA_Palani
2 Replies
dirfd(3C)						   Standard C Library Functions 						 dirfd(3C)

NAME
dirfd - get directory stream file descriptor SYNOPSIS
#include <dirent.h> int dirfd(DIR *dir); DESCRIPTION
The dirfd() function returns the file descriptor associated with the directory stream dir. This file descriptor is the one used internally by the directory stream operations. See opendir(3C), closedir(3C), readdir(3C), rewind- dir(3C), seekdir(3C), telldir(3C). The file descriptor is automatically closed when closedir() is called for the directory stream dir or when one of the exec functions is called. See exec(2). The file descriptor can safely be used only by functions that do not depend on or alter the file position, such as fstat(2) and fchdir(2). Closing the file descriptor with close(2) or modifying the file position by means other than the directory stream operations listed above causes undefined behavior to occur when one of the directory stream operations is subsequently called with the directory stream dir. RETURN VALUES
Upon successful completion, the dirfd() function returns an open file descriptor for the directory associated with the directory stream dir. ERRORS
There are no defined error returns. Passing an invalid directory stream as an argument to the dirfd() function results in undefined behav- ior. USAGE
The dirfd() function is intended to be used to obtain a file descriptor for use with the fchdir() function. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Committed | +-----------------------------+-----------------------------+ |MT-Level |Safe | +-----------------------------+-----------------------------+ SEE ALSO
close(2), exec(2), fchdir(2), fstat(2), closedir(3C), opendir(3C), readdir(3C), rewinddir(3C), seekdir(3C), telldir(3C), attributes(5) SunOS 5.11 24 Oct 2007 dirfd(3C)
All times are GMT -4. The time now is 01:37 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy