Sponsored Content
Full Discussion: C++ and Unix NEED HELP
Top Forums UNIX for Dummies Questions & Answers C++ and Unix NEED HELP Post 302646055 by Corona688 on Thursday 24th of May 2012 12:14:13 PM
Old 05-24-2012
Quote:
Originally Posted by KUJayhawk123
1. What language is that? I want to read up on it.
Shell scripting -- Bourne shell specifically. Any UNIX has some sort of Bourne shell or other. You may have heard of BASH, KSH, and POSIX shells -- these are all Bourne shells. BASH and KSH have useful extensions on the generic Bourne shell, while the POSIX version is fairly 'pure'. Pure POSIX shell code generally ought to run fine in all three.

When you login to a UNIX system with PUTTY or something, or open a terminal on a UNIX desktop, and see a prompt like user@host #, you're probably typing into a Bourne shell. It can take commands line-by-line as you type them in. It's also an entire programming language, though rather purpose-specific. The one thing it's really good at is running and organizing other commands -- i.e. what you're wanting to do here Smilie

Quote:
2. What would be the general form of any unix command?
I'm afraid this question is so vague it's difficult to answer.
Quote:
3. What would the unix command to run this with the arguments look like?
[edit] Oh, I think I see what you mean.

Code:
# This only needs to be done once, ever.  It sets the file executable, so it can be run.
chmod +x ./myscript.sh

# The arguments don't need to be in any order, except that cfgname must be straight after -cfg, etc.
./myscript.sh -cfg cfgname -dir dir -run 3 -mask -root

Quote:
does this look right?

Code:
#!/bin/sh

OPT=0
OP=0

while [ "$#" -gt 0 ]
do
        case "$1" in
        -cfg) cfg_file=$2; shift ;;
        -dir)  file_name=$2; shift ;;
        -run) run_num=$2; shift ;;
        -mask) OPT=1 ;;
        -root) OP=1 ;;
        *)     break ;;
        esac

        shift
done

if [ -z "$cfg_file" ]
then
        echo "No config file given" >&2
        exit 1
fi

if [ -z "$file_name" ]
then
        echo "No file name given" >&2
        exit 1
fi

if [ -z "$run_num" ]
then
        echo "No run number given" >&2
        exit 1
fi

if [ "$OPT" -eq 1 ]
then
        ../bin/takeData -l -dir $file_name -trimVcal 60 -mask
        cd ../convert_to_tree/
        cp $file_name/phCalibrationFitTan_C0.dat $file_name/phCalibrationFit60_C0.dat
        cp $file_name/phCalibrationFit60_C0.dat ~/log/bt0500$run_num
        cp ../convert_to_tree/config.dat_original ~/log/bt0500$run_num
        ./convert_to_tree -l -r $run_num
        ./pulseHeightMain $run_num
fi

if [ "$OP" -eq 1 ] 
        then 
                cd ~/log/bt05r00$run_num 
                root -l 
else 
        ../bin/takeData -l -dir $file_name -trimVcal 60 
        cd ../convert_to_tree/ 
        ./Analyze.py --dir $file_name --cfg $cfg_file $run_num 
         
        if [ "$OP" -eq 1 ] 
        then 
                cd ~/log/bt0500$run_num 
                root -l 
        fi 
fi

Mostly correct but you're missing a 'fi' here and there. You're also missing the special #!/bin/sh first line which tells UNIX which shell to run this code with. It's possible your system uses /usr/bin/sh instead of /bin/sh, change as appropriate. I've highlighted fixes in red.
Quote:
I added another option to run the change directory and run root -l and I want to add a -h help option and print some stuff. I'm assuming I'd ad a -h) *something* ;;
Yep. It doesn't have to all be on one line, either. command1 ; command2 ; command3 is equivalent to
Code:
command1
command2
command3

;; on the other hand, is purely a case thing, you don't find it in other kinds of statements.

So, you can do

Code:
case "$something" in
-h)
        something
        something else
        yet more commands
        exit # to quit immediately, so it doesn't try to run commands below
        ;;
esac

'option' can even be a glob, i.e. if you wanted to match all strings beginning with 'opt', you could do opt*)

Last edited by Corona688; 05-24-2012 at 01:50 PM..
 

8 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

UNIX problem? Unix programm runs windows 2000 CPU over 100%

Okee problems...!! What is happening: Unix server with some programms, workstations are windows 2000, the workstations work good but when you start a programm on the Unix server the CPU of the workstations go to 100% usage resulting that the system gets very slow. The programm well its running so... (2 Replies)
Discussion started by: zerocool
2 Replies

2. UNIX for Dummies Questions & Answers

Unix History Question: Why are filenames/dirnames case sentsitive in Unix?

I tried looking for the answer online and came up with only a few semi-answers as to why file and directory names are case sensitive in Unix. Right off the bat, I'll say this doesn't bother me. But I run into tons of Windows and OpenVMS admins in my day job who go batty when they have to deal... (3 Replies)
Discussion started by: deckard
3 Replies

3. UNIX for Advanced & Expert Users

missing Path(in UNIX) when i launch a job on to unix machine using windows SSh

hi i want run an unix application from a windows program/application.i am using SSH(command line version)to log on to a unix machine from windows. the application has to read a configuration file inorder to run. the configuration file .CFG is in bin in my home directory. but the application... (1 Reply)
Discussion started by: megastar
1 Replies

4. Shell Programming and Scripting

FTP script for sending a file from one unix directory to another unix server director

Hi, My local server is :/usr/abcd/ Remote server is :/Usr/host/test/ I want to send files from local unix directory(All files starting with O_999) to remote host unix directory. Can any body give me the Unix Shell script to do this. One more doubt: Shall we need to change the file... (1 Reply)
Discussion started by: raja_1234
1 Replies

5. Shell Programming and Scripting

Batch job in unix server to move the pdf file from unix to windows.

Hi Experts, I have a requirement where i need to setup a batch job which runs everymonth and move the pdf files from unix server to windows servers. Could some body provide the inputs for this. and also please provide the inputs on how to map the network dirve in the unix like that... (1 Reply)
Discussion started by: ger199901
1 Replies

6. UNIX for Dummies Questions & Answers

How does unix system administration, unix programming, unix network programming differ?

How does unix system administration, unix programming, unix network programming differ? Please help. (0 Replies)
Discussion started by: thulasidharan2k
0 Replies

7. Shell Programming and Scripting

File Transfer from Window server to UNIX and UNIX to UNIX

Dear All, Can someone help to command or program to transfer the file from windows to Unix server and from one unix server to another Unix server in secure way. I would request no samba client. (4 Replies)
Discussion started by: yadavricky
4 Replies

8. Post Here to Contact Site Administrators and Moderators

VIP Membership - The UNIX and Linux Forums - Get Your UNIX.COM Email Address Here

We work hard to make The UNIX and Linux Forums one of the best UNIX and Linux knowledge sources on the net. The site is certainly one of the top UNIX and Linux Q&A sites on the web. In order to provide certain members the best quality account services, you can now get some great extra features by... (2 Replies)
Discussion started by: Neo
2 Replies
All times are GMT -4. The time now is 01:47 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy