Sponsored Content
Operating Systems OS X (Apple) Creating An Executable On The Fly... Post 302897708 by wisecracker on Tuesday 15th of April 2014 02:02:50 PM
Old 04-15-2014
Creating An Executable On The Fly...

Hi all...

Had an idea tonight which could really enhance shell scripting for me.
Yes I am aware there could be difficulties but......

Creating a C script inside the shell script to do a task, (a simple text print to stdout in
this example), compiling it on the fly, making sure it is executable and then calling it
as part of the script...

Of course one would have to develop and fully test the C code first before inserting it
into a shell script and there may be some difficulties on fairly complex C scripts to
insert into said shell script but nevertheless this looks mighty interesting...

This is using OSX 10.7.5, default bash terminal and for OSX users XCode will need
to be installed from the Apple site before "gcc" can be used as Apple do not include
this part of the OS as standard. It is free and takes little time to get it...

Not tried on Linux and other *NIX flavours but there is no reason why it will not work.
Code:
#!/bin/bash
# Embed_C.sh
> /tmp/cscript.c
> /tmp/cscript
echo "Create a C script..."
echo '/* Embed a C script and compile on the fly. */
#include<stdio.h>
main()
{
    printf("A simple text line as a test...\n");
}' > /tmp/cscript.c
cd /tmp
echo "Compile this new C script as the default a.out..."
gcc cscript.c
mv a.out cscript
echo "Rename and ensure it is executable..."
chmod 755 cscript
echo "Now call it..."
echo ""
./cscript
echo ""
echo "Done!..."
exit 0

Results:-
Code:
Last login: Tue Apr 15 18:58:08 on ttys000
AMIGA:barrywalker~> ./Embed_C.sh
Create a C script...
Compile this new C script as the default a.out...
Rename and ensure it is executable...
Now call it...

A simple text line as a test...

Done!...
AMIGA:barrywalker~> _

Enjoy the supreme flexibility of the shell...
 

10 More Discussions You Might Find Interesting

1. Programming

problem in creating executable for a client program

Hi, I am trying to run simple client server c program in unix.At the compling stage server is creating an executable but the client is not. below is the link to the source codes: http://www.cs.rpi.edu/courses/sysprog/sockets/server.c http://www.cs.rpi.edu/courses/sysprog/sockets/client.c ... (2 Replies)
Discussion started by: konas
2 Replies

2. UNIX for Dummies Questions & Answers

mv and compress on the fly

I want to move and compress a big export file. Like mv file_exp /filesystem/file_exp |compress The file system is too small to compress and move with 2 steps. What is the best command for me. I'm running solaris. :confused: (1 Reply)
Discussion started by: simquest
1 Replies

3. UNIX for Dummies Questions & Answers

creating executable for every C file

hello Folks, once we compile any C code on Linux, we run the code using "./a.out".. but can we have an executable for every program so that we can run the code directly without compiling the code every time. just run the executable and get the output! Thanks! (7 Replies)
Discussion started by: compbug
7 Replies

4. OS X (Apple)

What's The Easiest Route To Creating A Unix Executable File for Terminal?

I've seen the executable open in the application OmniOutliner, can I create an executable with this app? I'd like to be able to create the unix executable and insert it into terminal, but I'm not sure if the Omni app will allow me to create it. Any one have any ideas or possibly familiar with... (10 Replies)
Discussion started by: unimachead
10 Replies

5. Solaris

Disable IPMP on the fly

Wats would be the best way to disable link based IPMP on the fly without loosing network connectivity ? (6 Replies)
Discussion started by: fugitive
6 Replies

6. What is on Your Mind?

The Only Way To Fly !

This is great! Lqh8e2KYIrU (8 Replies)
Discussion started by: Neo
8 Replies

7. UNIX Desktop Questions & Answers

creating an executable file from shell scripts

Hi Friends, I have a shell script which does some operations etc, would it be possible to create an executable file out from this shell script? meaning the executable file is not editable, thus the source code will not be visible to other users for copyright reasons. Please help, thanks! (1 Reply)
Discussion started by: kokoro
1 Replies

8. Shell Programming and Scripting

Creating executable script--please help

Hi group, I am very beginner in shell scripting and self learning. I am trying to create and executable script to run awk from user defined variables. e.g. suppose from a given file I want to delete some rows or some columns We need to repeat this process for many files. Thus I was... (4 Replies)
Discussion started by: smitra
4 Replies

9. HP-UX

Compress dbexport on the fly

Hi, I have an old HPUX 10.20 server running Informix 7.23 I need to dump the database to get it off that hardware before it dies. Unfortunately there is insufficient local diskspace to do so. I have set up a linux box with sufficient disk onto which I can export the database. Having... (1 Reply)
Discussion started by: fella
1 Replies

10. Shell Programming and Scripting

Execute script on the fly

Hi all, I am calling a zsh script from batch file . This zsh just removes the trigger file in a particular directory.File name is passed as a parameter from the batch file Problem is this batch is called in multiple other batch files and sometimes system says file cant be used as it is used... (4 Replies)
Discussion started by: Hypesslearner
4 Replies
escape(1)							Mail Avenger 0.8.3							 escape(1)

NAME
escape - escape shell special characters in a string SYNOPSIS
escape string DESCRIPTION
escape prepends a "" character to all shell special characters in string, making it safe to compose a shell command with the result. EXAMPLES
The following is a contrived example showing how one can unintentionally end up executing the contents of a string: $ var='; echo gotcha!' $ eval echo hi $var hi gotcha! $ Using escape, one can avoid executing the contents of $var: $ eval echo hi `escape "$var"` hi ; echo gotcha! $ A less contrived example is passing arguments to Mail Avenger bodytest commands containing possibly unsafe environment variables. For example, you might write a hypothetical reject_bcc script to reject mail not explicitly addressed to the recipient: #!/bin/sh formail -x to -x cc -x resent-to -x resent-cc | fgrep "$1" > /dev/null && exit 0 echo "<$1>.. address does not accept blind carbon copies" exit 100 To invoke this script, passing it the recipient address as an argument, you would need to put the following in your Mail Avenger rcpt script: bodytest reject_bcc `escape "$RECIPIENT"` SEE ALSO
avenger(1), The Mail Avenger home page: <http://www.mailavenger.org/>. BUGS
escape is designed for the Bourne shell, which is what Mail Avenger scripts use. escape might or might not work with other shells. AUTHOR
David Mazieres Mail Avenger 0.8.3 2012-04-05 escape(1)
All times are GMT -4. The time now is 11:04 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy