what does this code mean?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting what does this code mean?
# 1  
Old 06-26-2009
what does this code mean?

Code:
if [ $USER != webadmin ]; then
        echo 1>&2 Info : Only webadmin user can execute this script. please login and webadmin.
        exit 127
fi

if [ $# -ne 1 ]; then
        echo 1>&2 Usage: $0 *.file-extention
        echo 1>&2 e.g: $0 *.war
        exit 127
fi

I want to know what the "echo 1>&2" means
also what "if [ $# -ne 1 ]; then" means

thanks
# 2  
Old 06-26-2009
echo 1>&2 - sent this msg to stderr pipe
$# -ne 1 - find the number of arguments available whilst execution
# 3  
Old 06-26-2009
Code:
Normally:
echo 2>&1
rather than
echo 1>&2

# 4  
Old 06-26-2009
Hi.
Quote:
Originally Posted by new2learn09
I want to know what the "echo 1>&2" means ...
When a program runs, 3 files are made available: STDIN (0), STDOUT (1), and STDERR (2), all assigned to the terminal.

Often programs are connected together into pipelines, where the STDOUT of a program is connected to the STDIN of another program. If a program were to write an error message to STDOUT, it could be swallowed down the pipeline. Consequently,a good practice is to specify that error messages be written to STDERR.

If we were to write :
Code:
echo " Error!" >2

the message would be written on file "2". So the shell uses the convention that "&2" will be whatever STDERR is assigned to. So we write:
Code:
echo " Error!" >&2

Because STDERR is normally assigned to the terminal, the user is likely to notice it. (The "1" in "1>&2" is understood, and may be omitted.)

The placement of "1>&2" can be anywhere where it is directly exposed to the shell:
Code:
>&2 echo One
echo >&2 Two
echo Three >&2

but I have seen it in most situations at the end of the statement.

Best wishes ... cheers, drl
Login or Register to Ask a Question

Previous Thread | Next Thread

6 More Discussions You Might Find Interesting

1. Linux

Go to a line of code , skip few lines of code

Hi , I have a code where i am using a infinite while loop . some thing like below while do if then #go to line 20 fi command 1; command 2; #line 20: sleep 34; (5 Replies)
Discussion started by: Paarth
5 Replies

2. Shell Programming and Scripting

Block of code replacement in Java source code through Unix script

Hi, I want to remove the following code from Source files (or replace the code with empty.) from all the source files in given directory. finally { if (null != hibernateSession && hibernateSession.isOpen()) { //hibernateSession.close(); } } It would be great if the script has... (2 Replies)
Discussion started by: hareeshram
2 Replies

3. UNIX for Dummies Questions & Answers

If ‘922’ Code does not exist on ‘03’ Record, ‘901’ Code will be there instead, move ‘03’ R

01,011600033,011600033,110516,0834,2,90,,2/ 02,011600033,011103093,1,110317,0834,,2/ 03,105581,,015,+00000416418,,,901,+00000000148,,,922,+000000 00354,,/ 03,113806,,015,+00000559618,,,901,+00000000096,,,922,+000000 00621,,/ 88,902,+0000000025218,,/... (1 Reply)
Discussion started by: sgoud
1 Replies

4. Shell Programming and Scripting

translate ksh code to csh code

hi all, Can any 1 help me translate this korn shell code to C shell code : email=$(grep "^$1" $folder/config_2.txt | awk '{print $2'}) In config_2.txt the content is : which mean in korn shell , $1=groupname and $2=email address. Now i need to write in C shell script,when i set the... (2 Replies)
Discussion started by: proghack
2 Replies

5. Programming

how i prepare a c++ code(c code) for implementing my own protocol format

helo my protocol format is given below { destno,mode,no.of packet,pktsize,,pktno,textsize,CRC} description:- { is starting flag destno - 4bytes mode - 1 byte no.of pkt - 4byes pktsize - 6 bytes ... (1 Reply)
Discussion started by: amitpansuria
1 Replies

6. UNIX for Advanced & Expert Users

Return code from PL/SQL Code

Hi Guys, I was just wondering if anybody can help me with this problem. OK, how we can get a value back from PL/SQL Script (not stored procedure/function) See the below example: (for example aaa.sh) #!/bin/ksh VALUE=`sqlplus -s user/password@test_id <<EOF @xxx.sq EOF` echo $VALUE ... (7 Replies)
Discussion started by: Shaz
7 Replies
Login or Register to Ask a Question