Regarding shell scripts to executables


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Regarding shell scripts to executables
# 1  
Old 10-27-2007
Regarding shell scripts to executables

Hi,

I have written a shell script for automating some of our repetitive activities. I want all my colleagues to use my script and do the activities automatically by just running the script.

But I do not want them to see the code. Is there a way we can generate something like an executable from the script, so that they have access only to the executable and they cannot see the source code.

I do not want to give just the execute permission. If I do that then I need to store the script in one common place. Since the script needs to be run in many servers then I need to copy the script in all the servers which is duplication and maintanence is difficult and every body will try to change the script.

Instead, I want to generate an executable and give that to my colleagues so that they can run it wherever they want and I alone can maintain the source code.

I am using HP-UX 11.11

thanks in advance for your help.
# 2  
Old 10-28-2007
may be you should try

shc - shell script compiler
# 3  
Old 12-10-2007
Shell Compiler shc

I have been using shc compiler from long time, now I am moving to another version or different OS where it is not working as expected.

I have shc working pretty well in Solaris 8 , On Solaris 10, I am unable to make/compile shc

make shc on Solaris 10 :

$ make shc
gcc -Wall -O6 -pedantic shc.c -o shc
In file included from /usr/include/sys/signal.h:34,
from /usr/include/signal.h:26,
from shc.c:94:
/usr/include/sys/siginfo.h:259: error: parse error before "ctid_t"
/usr/include/sys/siginfo.h:292: error: parse error before '}' token
/usr/include/sys/siginfo.h:292: error: ISO C forbids data definition with no type or storage class
/usr/include/sys/siginfo.h:294: error: parse error before '}' token
/usr/include/sys/siginfo.h:294: error: ISO C forbids data definition with no type or storage class
/usr/include/sys/siginfo.h:390: error: parse error before "ctid_t"
/usr/include/sys/siginfo.h:392: error: conflicting types for `__proc'
/usr/include/sys/siginfo.h:261: error: previous declaration of `__proc'
/usr/include/sys/siginfo.h:398: error: conflicting types for `__fault'
/usr/include/sys/siginfo.h:267: error: previous declaration of `__fault'
/usr/include/sys/siginfo.h:404: error: conflicting types for `__file'
/usr/include/sys/siginfo.h:273: error: previous declaration of `__file'
/usr/include/sys/siginfo.h:420: error: conflicting types for `__prof'
/usr/include/sys/siginfo.h:287: error: previous declaration of `__prof'
/usr/include/sys/siginfo.h:424: error: conflicting types for `__rctl'
/usr/include/sys/siginfo.h:291: error: previous declaration of `__rctl'
/usr/include/sys/siginfo.h:426: error: parse error before '}' token
/usr/include/sys/siginfo.h:426: error: ISO C forbids data definition with no type or storage class
/usr/include/sys/siginfo.h:428: error: parse error before '}' token
/usr/include/sys/siginfo.h:428: error: ISO C forbids data definition with no type or storage class
/usr/include/sys/siginfo.h:432: error: parse error before "k_siginfo_t"
/usr/include/sys/siginfo.h:437: error: parse error before '}' token
/usr/include/sys/siginfo.h:437: error: ISO C forbids data definition with no type or storage class
In file included from /usr/include/signal.h:26,
from shc.c:94:
/usr/include/sys/signal.h:85: error: parse error before "siginfo_t"
In file included from shc.c:94:
/usr/include/signal.h:111: error: parse error before "siginfo_t"
/usr/include/signal.h:113: error: parse error before "siginfo_t"
*** Error code 1
make: Fatal error: Command failed for target `shc'

The other issue which is not compile issue is on Linux Platform ( Red Hat 2.6 kernel 2.6.9-55.0.2.ELsmp)

I am able to compile shc and comiple my shell scripts using shc without any issues. When my script is running and I do
ps -ef |grep myscript

It is kind of showing whole script in Linux ( That is defeating purpose using shell script compile)

I have tried to contact author few times as well but could not contact so not sure whether his email id got changed.

Any help is greatly appreciated.
# 4  
Old 12-10-2007
Scripts are supposed to be simple and readable.
Why not rewrite it in C?
# 5  
Old 12-10-2007
Quote:
Originally Posted by lokachari
Since the script needs to be run in many servers then I need to copy the script in all the servers which is duplication and maintanence is difficult and every body will try to change the script.
Then your problem is one of "change management", and in this simple case can be solved by making the script readable but not writeable.

If people are making extra copies and changing those, that is not your problem, surely?
# 6  
Old 12-11-2007
Quote:
Originally Posted by prowla
Scripts are supposed to be simple and readable.
Why not rewrite it in C?
If you know well how to code in C.
What about solving & giving suggestions on how to solve this particular issue vs why you need this ?
# 7  
Old 12-11-2007
Finally found the solution for issue
Driver Development - where is ctid_t defined? (Solaris 10)
The fix is to build a fresh set of gcc "fixed" headers:

# cd /opt/sfw/gcc-3/lib/gcc-lib/i386-pc-solaris2.9/3.3.2/install-tools/

# cat > mkheaders.conf
SHELL=/bin/sh
SYSTEM_HEADER_DIR="/usr/include"
OTHER_FIXINCLUDES_DIRS=""
FIXPROTO_DEFINES="-D_XOPEN_SOURCE"
STMP_FIXPROTO="stmp-fixproto"
STMP_FIXINC="stmp-fixinc"
^D

# ./mkheaders
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Ubuntu

Gcc cannot create executables

https://www.unix.com/302461112-post1.html Thank you. It's still in Linux Mint 17 (3 Replies)
Discussion started by: jgt
3 Replies

2. Shell Programming and Scripting

Scripting with executables

Hi everyone, I am working with an executable (let's say work) in bash shell. When I run this work executable it asks the following information; 1- choose task a or b 2- input file 3- output file 4- some operational choices after it reads the given input file, does some algebraic... (17 Replies)
Discussion started by: hayreter
17 Replies

3. Shell Programming and Scripting

Help: Makefile with multiple executables

I am trying to create executables for the following files Currently, I am making 9 different directories for for each. I would like to make 1 directory but everytime I try it does not work. CROSS_COMPILE?= # CROSS_COMPILE used to = arm-arago-linux-gnueabi... (1 Reply)
Discussion started by: bpetersen
1 Replies

4. Shell Programming and Scripting

Searching for executables

Hello Unix users, this is my first post here. :) I want to search a directory (and subdirectories) for executable files (files with rwx------ permission) and move them to a different folder. What Unix commands can accomplish this? (2 Replies)
Discussion started by: Sagan_Radiation
2 Replies

5. 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

6. Programming

Compare two executables

Hi - I have two complex (for me at least) make files. The older one creates a succesful executable. The later one uses if statements to conditionally make different versions of the executable. The 2nd produces an executable that fails. I have "eyeballed" the differences in the Make files and run... (18 Replies)
Discussion started by: BrighterLater
18 Replies

7. 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

8. Programming

executables ending with *

Hi All, I m very new to unix. I have a basic doubt .. In unix I m seeing that there is a * at the end of by executable name (exe1*).. Wht is the significance of that Thanks a lot in advance (2 Replies)
Discussion started by: binums
2 Replies

9. UNIX for Dummies Questions & Answers

cannot create executables

I am trying to install PROFTPD-1.2.7 on a SCO OpenServer 5.0.6 Server with a gcc-2.95.2 installed the VOLS files from http://www.caldera.com/skunkware. The problem I am having is when I try to run ./configure in the proftpd directory I get this error: # ./configure checking build system... (6 Replies)
Discussion started by: stufine
6 Replies

10. UNIX for Dummies Questions & Answers

cksum all executables on drive

I know I can run the cksum command for multiple files in a directory and send the results to a new file. EX.) # cd /usr # cksum *_ex* > /tmp/cksumusr.txt But I can't figure out how to run this command on multiple files in all directories on drive. Is it possible to do this, without having... (2 Replies)
Discussion started by: crazykelso
2 Replies
Login or Register to Ask a Question