Sponsored Content
Top Forums UNIX for Advanced & Expert Users What's your most useful shell? Post 302500488 by Corona688 on Monday 28th of February 2011 07:46:26 PM
Old 02-28-2011
Quote:
Originally Posted by tetsujin
My point is that adding scoped lifetime management to file descriptors in a shell wouldn't fall nearly as far outside the current model as you suggest.
Noted. I don't agree.
Quote:
read x < $f #Is that quite simple enough?
We already use $. This'd change the meaning of plenty of existing code where $f would be a file name. Unless you decide to do both, in which case this is a line of code that does two completely different things depending on what type of variable it is. You're not just adding anonymous files to your shell, you're adding operator overloading!
Quote:
Alternately, "read x <&$f" would make it plain that $f is an open file and not a filename.
$ means string, period. Pick something else.
Quote:
some_command $f # It's actually not too hard to make this do what the user intends...
How do you know that's what the user wants? How do you know the command even reads from stdin? How much code would this break in what bizzare ways when someone opens a file by accident? If you want implicit redirections, you redirect a code block to get everything inside it redirected.

This line will also do completely different things under different circumstances -- string or file -- even though it isn't a branch or control statement. New kinds of spaghetti logic can be made out of it. And now you need more shell extensions to tell the difference between file and string to avoid these weird corner cases.
Quote:
First, the shell could handle it like process redirection: assign the file $f some numeric FD in the new process, then in place of the argument $f, substitute /dev/fd/(some number)
If you still think the shell assigns these numbers, I don't know what to tell you.

Yes, that mode of anonymous redirection increases the code block level, that's unavoidable -- how else are you going to define scope but code blocks?

For global, but anonymous filedescriptors, How about this for a syntax:
Code:
# must be a function, alias, or builtin
open FILENAME FILEDES "r"

cat <&$FILEDES

That even works, if you write an 'open' function, since the second line isn't a new syntax.
 

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
PPI::Token::QuoteLike(3)				User Contributed Perl Documentation				  PPI::Token::QuoteLike(3)

NAME
PPI::Token::QuoteLike - Quote-like operator abstract base class INHERITANCE
PPI::Token::QuoteLike isa PPI::Token isa PPI::Element DESCRIPTION
The "PPI::Token::QuoteLike" class is never instantiated, and simply provides a common abstract base class for the five quote-like operator classes. In PPI, a "quote-like" is the set of quote-like things that exclude the string quotes and regular expressions. The subclasses of "PPI::Token::QuoteLike" are: qw{} - PPI::Token::QuoteLike::Words `` - PPI::Token::QuoteLike::Backtick qx{} - PPI::Token::QuoteLike::Command qr// - PPI::Token::QuoteLike::Regexp <FOO> - PPI::Token::QuoteLike::Readline The names are hopefully obvious enough not to have to explain what each class is. See their pages for more details. You may note that the backtick and command quote-like are treated separately, even though they do the same thing. This is intentional, as the inherit from and are processed by two different parts of the PPI's quote engine. SUPPORT
See the support section in the main module. AUTHOR
Adam Kennedy <adamk@cpan.org> COPYRIGHT
Copyright 2001 - 2011 Adam Kennedy. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. perl v5.16.2 2011-02-25 PPI::Token::QuoteLike(3)
All times are GMT -4. The time now is 10:41 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy