10-18-2007
Yeah sure... I might seem a little ambitious and I'm sure it'll take some time to build all that but I'll show it to you once I'm done with it... So do you have any suggestions to give me as far as my last post is concerned? I've just pasted the relevant matter here:
And while implementing pipes, when I issue a command such as "ls | grep .c" in my interpreter, after parsing it, what should I be doing? I read about file descriptors and am assuming the following has to be done:
1. Parse the command line
2. argv[0] contains ls, so fork a process and execute it but redirect the output to a file (I don't know how this can be done internally in the C Code. I know I need to use the execv command to execute but how will I redirect?)
3. In the next parse, I scan the "|" character and so I know that the user wants to pipe the output and at this stage I would fork another process with the argv[2] string i.e. "grep .c" (but this will be stored in argv[2] and argv[3]. How will I know that the second one has command line arguments too and how should I handle them?) and then direct the output of this to the stdout.
7 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
if somebody can help me pls.
i need the source code for a shell which compiles C or java programs.
i need a very short and simple one, just for the compiling part, in UNIX
Respect (4 Replies)
Discussion started by: zlatan005
4 Replies
2. UNIX for Dummies Questions & Answers
#!/usr/bin/m4
when running m4 scripts with "#!/usr/bin/m4" they are executed properly, but "#!/usr/bin/m4" is printed out - how to avoid it?
Thanks in advance. (5 Replies)
Discussion started by: Action
5 Replies
3. Programming
Hello guys - do you have any sample program implementing UNIX commands in an interpreter with Java? I can look up the simple ones such "ls" etc and then write my own commands.
I would appreciate it. (2 Replies)
Discussion started by: cmontr
2 Replies
4. Shell Programming and Scripting
Hi,
I am writing a shell script that connects to a remote server and performs some tasks on the server and exits.
Since i am using a ssh connection, i am using a "expect" utility to supply the password automatically (which is present within the script).
In order to use this utility, i need to... (3 Replies)
Discussion started by: sunrexstar
3 Replies
5. Shell Programming and Scripting
Hi. My name is Caleb (a.k.a RagingNinja) form the whited00r forums. (Whited00r makes custom firmware for iOS devices).
I have been learning and creating simple shells scripts. I have been recently using VIM for Windows or using VirtualBox to run the UBUNTU OS within VirtualBox to create my shell... (2 Replies)
Discussion started by: RagingNinja
2 Replies
6. Linux
Can you explain me what is ment by interpreter files ??
Why and how they are used?? (1 Reply)
Discussion started by: kkalyan
1 Replies
7. Shell Programming and Scripting
Hi,
Is it possible to choose the inerpreter conditionally.
For example, if whereis bash returns /usr/bin/bash then i need to choose #!/usr/bin/bash
else i need to use #!/usr/bin/sh.
Is it possible to achieve in a shell script?
Thanks (1 Reply)
Discussion started by: pandeesh
1 Replies
LEARN ABOUT FREEBSD
atf-sh
ATF-SH(1) BSD General Commands Manual ATF-SH(1)
NAME
atf-sh [-s shell] -- interpreter for shell-based test programs
SYNOPSIS
atf-sh script
DESCRIPTION
atf-sh is an interpreter that runs the test program given in script after loading the atf-sh(3) library.
atf-sh is not a real interpreter though: it is just a wrapper around the system-wide shell defined by ATF_SHELL. atf-sh executes the inter-
preter, loads the atf-sh(3) library and then runs the script. You must consider atf-sh to be a POSIX shell by default and thus should not
use any non-standard extensions.
The following options are available:
-s shell Specifies the shell to use instead of the value provided by ATF_SHELL.
ENVIRONMENT
ATF_LIBEXECDIR Overrides the builtin directory where atf-sh is located. Should not be overridden other than for testing purposes.
ATF_PKGDATADIR Overrides the builtin directory where libatf-sh.subr is located. Should not be overridden other than for testing purposes.
ATF_SHELL Path to the system shell to be used in the generated scripts. Scripts must not rely on this variable being set to select a
specific interpreter.
EXAMPLES
Scripts using atf-sh(3) should start with:
#! /usr/bin/env atf-sh
Alternatively, if you want to explicitly choose a shell interpreter, you cannot rely on env(1) to find atf-sh. Instead, you have to hardcode
the path to atf-sh in the script and then use the -s option afterwards as a single parameter:
#! /path/to/bin/atf-sh -s/bin/bash
ENVIRONMENT
ATF_SHELL Path to the system shell to be used in the generated scripts.
SEE ALSO
atf-sh(3)
BSD
September 27, 2014 BSD