ksh if block question


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting ksh if block question
# 1  
Old 01-01-2008
ksh if block question

Hi,

I am looking at a script, and it contains lines like:

Code:
if [[ $(echo $* | egrep -c 'DG') -eq 0 ]]
...

This is getting me confused. Why do we need $ before (echo $* | egrep -c 'DG')? Why can't we simply have:

Code:
if [[ (echo $* | egrep -c 'DG') -eq 0 ]]
...

i.e. no $ here before the ()...

Thanks.

J
# 2  
Old 01-01-2008
Hi.

Do you get the same result when you omit the "$"? ... cheers, drl
# 3  
Old 01-01-2008
Quote:
....Why can't we simply have:

if [[ (echo $* | egrep -c 'DG') -eq 0 ]]
Because the shell won't do command execution within the if condition, it will error out:

conditional binary operator expected

The condition expects an integer within itself, that's why you need the command substitution structure $( ) , where now the shell is told to execute the command within the braces:

Quote:
if [[ $(echo $* | egrep -c 'DG') -eq 0 ]]
or similarly:

Quote:
if [[ `echo $* | egrep -c 'DG'` -eq 0 ]]
# 4  
Old 01-01-2008
Excellent. Now it is clear.

Thanks.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

ksh prompt yes/no question

I am writing a code like this in KSH . #!/bin/ksh echo is this SQL query ? yes or no read answer case $answer in yes|Yes|y) echo got a positive answer ;; no|n) echo got a 'no' ;; esac Here after ... (2 Replies)
Discussion started by: talashil
2 Replies

2. Shell Programming and Scripting

Matching a block of data sed or ksh

I have the need to check content of very many files for a block of text. I know the data should match for instance/as an example the following The list of characters bugs bunny tom and jerry Mighty mouse Felix the cat / In the first step, I isolated the interesting data by... (3 Replies)
Discussion started by: popeye
3 Replies

3. UNIX for Dummies Questions & Answers

Question on using a variable in KSH

Hi all, The below command tries to copy ".tgz" instead of "hello_test.tgz" -- It seems as if the underscore gets in the way. I tried with different ways of using quotes, with no luck, unfortunately...it's probably very simple, but may I ask how this would be done: How would the below be... (3 Replies)
Discussion started by: chatguy
3 Replies

4. Shell Programming and Scripting

Question regarding ksh script

Hi all, I have came across the following line in a script and was not able to interpret the meaning despite searching in the web for answer, my guess is that it seems like a comment to me stating if 0 then return else exit ============================ : 0 - 999 .... ........ (3 Replies)
Discussion started by: dwgi32
3 Replies

5. UNIX for Dummies Questions & Answers

ksh question

How can I know if my system has ksh feature? #!/usr/bin/ksh Which command we allow me to see? Please advise! (1 Reply)
Discussion started by: bobo
1 Replies

6. Shell Programming and Scripting

Conversion question about ksh

Hi all, New to ksh and had a few questions to see if this is doable in ksh or if I am going to have to call out to a tcl procedure. I have an Ascii file I want to convert to hex then search and remove all hex chars '0A' and then convert back to Ascii. Here is an example of an Ascii file I am... (2 Replies)
Discussion started by: hgjdv
2 Replies

7. Shell Programming and Scripting

A Question On Recursion In Ksh

Hi Folks, I would just like to know how recursion works in ksh or inside a shell in general. I created the following script, but it works(runs recursively) only for 64 times: ---------------- #! /usr/bin/ksh displaymessage() { echo "displaying count: $cnt " echo "wait for 1 second..."... (1 Reply)
Discussion started by: marlonus999
1 Replies

8. Shell Programming and Scripting

ksh question, loops

i want to add about 60 printers using a ksh script. i am having trouble though, i am reading the input from the hosts file and using the lpadmin command to add like so: lpadmin -p -v /dev/null -m netstandard -o dest= i want printername and ipaddy to come from the hosts file, i am having... (1 Reply)
Discussion started by: BG_JrAdmin
1 Replies

9. Shell Programming and Scripting

Question about KSH line.

Wondering what this line meant, especially the 2>&1 and ${RUN_DIR} parts: ${RUN_DIR}/<filename> 2>&1 Where <filename> is the location and name of a file. (1 Reply)
Discussion started by: CapsuleCorpJX
1 Replies

10. Shell Programming and Scripting

Simple ksh question

Hi, Simple question I am sure... I need to put yesterdays date in the name of a filename, ie assign yesterdays date to a variable and then I can use it where I want.. using the format yyyymmdd Any suggestions? (1 Reply)
Discussion started by: frustrated1
1 Replies
Login or Register to Ask a Question