Sponsored Content
Top Forums Shell Programming and Scripting if/else comparison with wildcard Post 302447105 by agama on Saturday 21st of August 2010 02:08:45 AM
Old 08-21-2010
Quote:
Originally Posted by cola
What's the problem if single bracket is used?
The open single bracket is a symlink to the test command. Shells (Ksh, bash) must treat it as an external command, and thus all of the command line is treated as an external command. Therefore, wildcards, unquoted, are expanded in the same manner as would be on any other command: as matching files in the filesystem. Quoted wildcard characters are treated as literals and passed to test which treats them as literals. So executing the following code takes the false branch:

Code:
if [ foo = "*o" ]
then
    echo "seemingly broken because this doesn't echo"
else
    echo "this will echo because * is interpreted literally by test"
fi

While this if statement takes the expected true branch:
Code:
if [[ foo == *"o" ]]

Beyond those differences, the double square bracketed expressions are interpreted by the shell, and no fork/exec overhead is needed, so they are much more efficient than using a single bracket.

Once in a long time does it make sense to use a single bracket expression (except when needing to write a pure bourn shell script), and even then I'd question its use.
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Find wildcard .shtml files in wildcard directories and removing them- How's it done?

I'm trying to figure out how to build a small shell script that will find old .shtml files in every /tgp/ directory on the server and delete them if they are older than 10 days... The structure of the paths are like this: /home/domains/www.domain2.com/tgp/ /home/domains/www.domain3.com/tgp/... (1 Reply)
Discussion started by: Neko
1 Replies

2. UNIX for Dummies Questions & Answers

wildcard

what will the cmd below do? ls *.3 1 members mentions that to seek all permutations and combinations of the mp3 extension ill have to use curly braces, {} and not, . what then will do? (13 Replies)
Discussion started by: abhi
13 Replies

3. Shell Programming and Scripting

Wildcard comparison

Just a quick question: if I want to do a comparison with a wildcard in a shell script, do i just use '*'? Heres what I have: elif ; then continue but that doesnt evaluate right. It tries to compare against the literal '/apps*' instead of anything that begins with '/apps' (2 Replies)
Discussion started by: rdudejr
2 Replies

4. Shell Programming and Scripting

wildcard

Hi, I have this code to search all "cif" files using wildcard for file in *.cif do grep "Uiso" $file | awk '{ print $3, $4, $5 }' > tet done I get this error "grep: *.cif: No such file or directory" Please where am I going wrong!!! Thank you in advance (6 Replies)
Discussion started by: princessotes
6 Replies

5. UNIX for Advanced & Expert Users

wildcard help

Can someone please explain the wildcards in this. How is this recursive? When I put this in my terminal it recursively displayed everything. ls .* * (6 Replies)
Discussion started by: cokedude
6 Replies

6. Shell Programming and Scripting

How to use wildcard * in if?

Hi, Can anyone help me how to use * in if statement. File contains below line1:a|b|c|Apple-RED| line2:c|d|e|Apple-Green| line3:f|g|h|Orange| I need to find line by line 4th field contains 'Apple' or not. Please help me at the earliest. (6 Replies)
Discussion started by: jam_prasanna
6 Replies

7. Shell Programming and Scripting

wildcard help!!

i have got heaps of files (.pdf, .txt and .doc) files in one folder, i am making a program in PERL that helps me find the files i want easier using shell wildcard, something like this!! print "Enter a pattern: (must be in )"; $input = <STDIN>; if (The input is in and valid wildcard... (3 Replies)
Discussion started by: bshell_1214
3 Replies

8. Shell Programming and Scripting

Sed Wildcard

Hello, I apologize for asking what is probably a simple question but I have been unable to understand the other posts on the topic. I have a file that has the following several lines: ABC DEF GH:IJKLMNOP_QRS_TUV_11112012_ABCL5 ABC DEF GH:IJKLMNOP_QRS_TUV_11112013_ABCL4 ABC DEF... (4 Replies)
Discussion started by: MolecularToast
4 Replies

9. Shell Programming and Scripting

Wildcard in ls

Hi Experts, I want to use ls in the below form: ls -l *.{txt,TXT} (working fine) but when i am declaring a variable, VAR="*.{txt,TXT}" ls -l $VAR is not working. Please help. Thanks. (4 Replies)
Discussion started by: sugarcane
4 Replies

10. OS X (Apple)

Help with wildcard

CD_numb is AM017 this code: set the_Firstcom_CD to (do shell script "ls -d '/volumes/audioNAS/Firstcom/Access Music/' ") & CD_numb gives me this: "/volumes/audioNAS/Firstcom/Access Music/AM017" the item I am looking for is AM017Q. I can get the "*" syntax right so it never finder... (7 Replies)
Discussion started by: sbrady
7 Replies
PEXTREM(1)						      General Commands Manual							PEXTREM(1)

NAME
pextrem - find minimum and maximum values in RADIANCE picture SYNOPSIS
pextrem [ -o ] [ picture ] DESCRIPTION
Pextrem locates the minimum and maximum values for the input picture, and prints their pixel locations and color values. The first line printed contains the x and y pixel location (x measured from the left margin, y measured from the bottom), followed by the red, green and blue values. The second line printed contains the same information for the maximum value. The -o option prints the original (radiance) values, undoing any exposure or color correction done on the picture. If no input picture is given, the standard input is read. AUTHOR
Greg Ward BUGS
The luminance value is used for comparison of pixels, although in certain anomolous cases (ie. highly saturated colors) it is possible that pextrem will not pick the absolute minimum or maximum luminance value. This is because a fast integer-space comparison is used. A more reliable floating-point comparison would be slower by an order of magnitude. SEE ALSO
falsecolor(1), getinfo(1), pcomb(1), pcompos(1), pextrem(1), pfilt(1), pflip(1), protate(1), psign(1), rpict(1), ximage(1) RADIANCE
11/15/93 PEXTREM(1)
All times are GMT -4. The time now is 05:04 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy