Command Line Argument


 
Thread Tools Search this Thread
Top Forums Programming Command Line Argument
# 1  
Old 07-08-2009
Command Line Argument

Hi,

I have a very simple C program which will run in UNIX. When i am passing * as the command line argument, i am gettig the below output.

Program:
#include <stdio.h>
#include "mylibrary.h"

int **environ;

int main(int argc,char *argv[])
{
int i;
printf("\nHello World");
printf("\nNumber of arguments: %d\n",argc);

for(i=0;i<argc;i++)
{
printf("\nArgument # %d is: %s\n",i,argv[i]);
}

return 1;
}

Compile:
cc hello.c -o hello

Run:
./hello *

Output:
Hello World
Number of arguments: 5

Argument # 0 is: ./hello

Argument # 1 is: hello

Argument # 2 is: hello.c

Argument # 3 is: mylibrary.h

Can somebody please explain me what is the exact reason of this output.

Thanks
Sudipta.
# 2  
Old 07-08-2009
The shell is expanding the asterisk to the files in the current directory. Similar expansion happens with ?, shell variables, and character classes '[..]'. Standard behavior for all proper UNIX shells.

Use '*' instead if you want to pass a literal asterisk.
# 3  
Old 07-09-2009
OK Thanks a lot. Now i understood what is the reason of the output.

---------- Post updated at 04:19 AM ---------- Previous update was at 01:00 AM ----------

Just want to share one information this technique is known as Glob Programming. You can get the information in wikipedia. Here comes the link:
http://en.wikipedia.org/wiki/Glob_(programming)
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Command line argument

Hi Guys, I'm trying to work out how to add a command line argument inside single quotes. Would anyone be able to help please as I'm going mad :) I want to be able to place the filename on command line and it then be used in a script but it needs to have quotes surrounding it. Thanks in... (4 Replies)
Discussion started by: mutley2202
4 Replies

2. Shell Programming and Scripting

Specify an entire UNIX command as a command line argument

I'm trying to write a bash script called YN that looks like the following YN "Specify a question" "doThis" "doThat" where "doThis" will be executed if the answer is "y", otherwise "doThat". For example YN "Do you want to list the file dog?" "ls -al dog" "" Here's my attempt... (3 Replies)
Discussion started by: LeoKSimon
3 Replies

3. Shell Programming and Scripting

Can a string be a command line argument?

I would like to use a string as a command line argument...is this possible using TCSH? For example say my script is called TEST and I would like to pass a string into my script stating why the test failed. EXAMPLE: TEST "Failed due to missing statement" (4 Replies)
Discussion started by: thibodc
4 Replies

4. Shell Programming and Scripting

Help on command line argument in csh

HI , I am new to csh. I need to pass some command line arguments like ./abc.sh -os Linux -path abc -tl aa -PILX 1 I have defined the loop as shown below. But its taking "-os" switches as arguments. Its treating them as arguments. How to resolve it? while ( $#argv != 0 ) switch ($argv) ... (7 Replies)
Discussion started by: vineet.dhingra
7 Replies

5. Shell Programming and Scripting

command-line line 0: Missing yes/no argument

Hi Guys When I run the below command ssh -o 'PasswordAuthentication yes' -o 'PreferredAuthentications publickey' -i $HOME/.ssh/id_dsa Server_Name I found the below error ommand-line line 0: Missing yes/no argument Kindly help me to sort out Double post, continued... (0 Replies)
Discussion started by: Pratik4891
0 Replies

6. Shell Programming and Scripting

finding * in command line argument

I have to write a script to determine whether given command line argument ($1) contains "*" symbol or not, if $1 does not contains "*" symbol add it to $1, otherwise show message "Symbol is not required". For e.g. If we called this script q5 then after giving , $ q5 /bin Here $1 is /bin, it... (5 Replies)
Discussion started by: cynosure2009
5 Replies

7. Shell Programming and Scripting

Need Help with the argument passing Through Command line

$$$$$ (5 Replies)
Discussion started by: asirohi
5 Replies

8. Shell Programming and Scripting

assign a command line argument and a unix command to awk variables

Hi , I have a piece of code ...wherein I need to assign the following ... 1) A command line argument to a variable e.g origCount=ARGV 2) A unix command to a variable e.g result=`wc -l testFile.txt` in my awk shell script When I do this : print "origCount" origCount --> I get the... (0 Replies)
Discussion started by: sweta_doshi
0 Replies

9. Shell Programming and Scripting

How to get the value in last command line argument???

Say I want to get the value of last command line argument using the value in $# (or some other way if u can suggest) how do I do it?? $"$#" `$"$#"` These don't work :( (4 Replies)
Discussion started by: amit_oddey21
4 Replies

10. UNIX for Dummies Questions & Answers

array as command line argument !!!!

hello, can any help me how to can pass array as command line argument in korn shell. also how to read a array from command line. thanks spandu (2 Replies)
Discussion started by: spandu
2 Replies
Login or Register to Ask a Question