how to check if the argument contain wildcard (*,?) ?


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers how to check if the argument contain wildcard (*,?) ?
# 1  
Old 03-27-2002
how to check if the argument contain wildcard (*,?) ?

In a script , i would like to check if the argument ( $1, $2 inside the script) contain wildcard (*,? etc). how do i do it?

> script_name arg1 arg*

$1 (arg1) does not contain wildcard, but $2 (arg* )contains wildcard. how can i tell in script?

i need to do this is because :

if arg1 (not contain *,? ) do ...
else (contain *,?...) do ....

clear?

thks
# 2  
Old 03-28-2002
You didn't say which shell, so I picked ksh.

Code:
#! /usr/bin/ksh

for arg ; do
        echo testing arg = "$arg"
        if [[ $arg = *[*]* ]] ; then
                echo "$arg" contains at least one \*
        fi
        if [[ $arg = *[?]* ]] ; then
                echo "$arg" contains at least one \?
        fi
done
exit 0

NB, to run this you will probably need

./script one two\*

or something. If you don't escape the wildcard, the shell may expand it. If that happens, there is no way to recover the original command line.
# 3  
Old 04-02-2002
Data Help, boys: How to 'unset noglob' in a SCRIPT? Help!

Hi, I am stuck.. need help

I am writing a script that takes arguments. first check if the arguments contain wildcard (?,*) . if it contains , list it. if it doesn't contains, do something else (eg. cp it)

the problem is:

when i type
> script1 a*

the $@ contain : a, ab, aaa, abcd .....
and $1 is a, $2 is ab, $3 is aaa....

there is no such a variable is actually "a*" for me to check!!

I can turn off the 'noglob' by typing > set -o noglob
but, i can't do it IN A SCRIPT.

what other ways i can do this?


Help!
# 4  
Old 04-02-2002
You already asked this question, and had it answered over here:
::merged threads - removed url::

It was also noted that the shell would replace that * with all the things it matched (if any) before sending it iff to the script, so there would not be a way to check for the presence of a "*" unless it was escaped from the shell like this:
your_command a\* or
your_command 'a*'

Last edited by oombera; 02-16-2004 at 12:07 PM..
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Wildcard in mailx argument

Hi All, I have to send some files as attachments to an email using mailx copmmand in a shell script. The files will be generated by some other application everyday with names starting with the literal 'Send' followed by some random sequence of characters in the filenames. I tried... (1 Reply)
Discussion started by: sagarparadkar
1 Replies

2. Shell Programming and Scripting

Argument check

All, I'm writing an argument checking block and running into an error. I want to confirm that $1 is one of two values. Here is what I have: if ]; then echo -e "\nPlease check your first augument. You used \"$1\" which is not recognized. Please see usage:" usage ... (9 Replies)
Discussion started by: hburnswell
9 Replies

3. Shell Programming and Scripting

Need a script to check if an argument is valid shell variable

I need a script that should print 'yes' if the argument is a valid shell variable name else 'No' if it is not a valid shell variable. A valid one begins with an alphabet or percentage (%) character and is followed by zero or more alphanumberic or percentage (%) characters. For example: $... (6 Replies)
Discussion started by: pingiliarjun
6 Replies

4. Shell Programming and Scripting

Check for spaces in input argument!

Hi guys, I have created a csh script which allows user to pass input argument with the script like: cluster_on_lev3.csh -t <value> -p <value> Example: cluster_on_lev3.csh -t 2.3 -p 0.05 Now I want to create an error code where if user passes input argument without spaces , the code... (16 Replies)
Discussion started by: dixits
16 Replies

5. Shell Programming and Scripting

Check folder existence using wildcard

Hi I would like to know how I can check whether there is one or more folders in the current directory which begins with e.g. 2011-11. Initially I figured that this could easily be done simply by: if ; then ... However if there is more than one folder which begins with 2011-11 then it... (1 Reply)
Discussion started by: aknu
1 Replies

6. UNIX for Advanced & Expert Users

sudo wildcards problem: for every argument a *-wildcard? Better solution?

Hi I allow the user tommy to run this command as root sudoCommand: /app/appname/connectors/*/*/current/bin/*With "sudo -l" he sees the sudoers, but is unable to execute. $ sudo /app/appname/connectors/zur/namename/current/bin/othername agentsvc --i --u root --sn 1m7command Sorry, user... (2 Replies)
Discussion started by: slashdotweenie
2 Replies

7. UNIX for Dummies Questions & Answers

Check for Empty Command Argument

I have a script that when called can have 1 or 2 command arguments. If only 1 command argument is passed into the script how can I check that the second argument is null? I am working in Korn shell in a UNIX environment. Example of script call with 2 arguments: % statreport 0300 1430 ... (6 Replies)
Discussion started by: Nysif Steve
6 Replies

8. Shell Programming and Scripting

check if argument is an ip address in bash/sh

Hi all, Can you please suggest a few lines of if statement to check if a variable is an ip address purely in bash/sh? Thanks, Marc (3 Replies)
Discussion started by: marcpascual
3 Replies

9. Shell Programming and Scripting

Check if argument passed is an integers

How do I check if the argument passed to a script is an integer? I am writting a script that will take to integers and want to be able to check before I go on. I am using bourne shell. Thanks in advance (13 Replies)
Discussion started by: elchalateco
13 Replies

10. 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
Login or Register to Ask a Question