Visit Our UNIX and Linux User Community


Passing blank arguments to a script


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users Passing blank arguments to a script
# 1  
Old 01-08-2008
Passing blank arguments to a script

All,
I have a cron job script that receives several command line arguments. At some point if there are validation problems and the job cannot be run, it duplicates the entire command line into a temporary text file which is later executed as a script. Unfortunately when I pass the list of received arguments (ie: $*) to this new file, the quoted blank arguments are dismissed.

For example, my script "runbatch.sh" looks like this:
#!/bin/ksh
#runbatch.sh
if [ some validation fails ]
then
echo "$0 $*" >> retryjobs.sh
exit 1
fi

If runbatch.sh was run as:
runbatch.sh one two '' four five

It will convert the 2 single quotes to a blank when exporting the line to retryjobs.sh, thus removing the blank argument.

Here's what retryjobs.sh looks like:
runbatch.sh one two four five

I need those single quotes to be passed. Any ideas anyone??

Thanks
# 2  
Old 01-08-2008
There is actually an entry in the man page to explain exactly this situation; use "$@"
# 3  
Old 01-08-2008
How do you man "$@" ? It gives me errors:

->man "$@"
sh: @: Parameter not set.

Thanks,

Réal
# 4  
Old 01-08-2008
no, I mean man ksh.

"$@" is what you should use in your script instean of $*
# 5  
Old 01-08-2008
Oh sorry, I forgot the other bit, and use printf, not echo.

Code:
printf "'%s' " "$@" >> file
printf "\n" >> file

# 6  
Old 01-08-2008
Thanks for the tip - I never tried man on ksh - kool Smilie

Unfortunately either "$@" or "$*" produce an unquoted double space Smilie

How about trying to replace this double space with [space] [quote] [quote] [space]. The 'tr' command doesn't seem quite fit to handle this. Remains 'sed' but I am not very familliar with it. Please help with the correct syntax:

echo "$@"|sed ??? >> retryjobs.sh

Thanks.

Réal
# 7  
Old 01-08-2008
See my previous. I probably posted it while you were typing.

Previous Thread | Next Thread
Test Your Knowledge in Computers #386
Difficulty: Medium
The Linux telnet command provides a user interface to a remote system using the SSH protocol.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Passing arguments to php script

i want to be able to pass arguments to a php script if it is being piped: cat myphpscript.php | php - $1 $2 $3 blah blah This usually works for other script languages...i.e. ruby: cat myrubyscript.rb | ruby - $1 $2 $3 blah blah so my question is, how can i pass arguments to my php... (1 Reply)
Discussion started by: SkySmart
1 Replies

2. Shell Programming and Scripting

Passing arguments while running the script

Hi, I have a requirement for creating a MQ (queue) where the inputs has to be passed as arguments. Running the script as below ./hi.sh "Servername" "QueueManagername" "QueuecreationCommand" cat hi.sh echo "Welcome to $1" runmqsc $2 < $3 But the queue creation command is... (9 Replies)
Discussion started by: Anusha M
9 Replies

3. Shell Programming and Scripting

Passing arguments to a bash script

Hi, I wanted to pass an argument to a bash script. So that the argument is used inside the awk command inside the bash script. I know the noraml way of passing argument to a bash script as below : sh myScript.sh abc Inside the bash script i can use like this myArg1=$1 wc $myArg But... (8 Replies)
Discussion started by: shree11
8 Replies

4. Shell Programming and Scripting

Passing multiple arguments to a shell script

Hi Gurus, Need some help with the shell scripting here. #!/bin/ksh ps -ef | grep -i sample.ksh | grep -v grep > abc.txt if then echo "sample.ksh is executing" else echo "sample.ksh is not executing" fi (1 Reply)
Discussion started by: jayadanabalan
1 Replies

5. Shell Programming and Scripting

Passing arguments to a perl script

Hi I need to pass comma seperated arguments to a perl script? It is like: Exect.pl -d GUI1,GUI2,GUI3 and I need to store these argsGUI1,GUI2,GUI3 in an array. can anyone suggest how to do that: (1 Reply)
Discussion started by: rkrish
1 Replies

6. Shell Programming and Scripting

passing arguments to external script

Hi! I have a python script that requires arguments and these arguments are file paths. This script works fine when executed like this: /my_python_script "file_path1" "file_path2" (i added quotes as some file names may have weird characters) the issue happens when i launch my python script... (14 Replies)
Discussion started by: gigagigosu
14 Replies

7. Shell Programming and Scripting

passing arguments to sql script

Hi Gurus, i have one requirement in unix script, i have a file called abc.txt in that few lines are there with the empid, i need to read each line and pass to .sql script. ex: abc.txt 2345 2346 1243 1234 i need to pass these arguments to .sql script rom unix ex: select * from... (1 Reply)
Discussion started by: Devendar
1 Replies

8. Shell Programming and Scripting

problem passing arguments to script

Hi, I am writing a script, which is invoked from other system using ssh. I have problems reading the arguments passing to the script. If the argument has a space in it (ex "rev 2.00"), the script considers "rev" as 1 argument and "2.00" as another. Instead i want "rev 2.00" to be considered... (5 Replies)
Discussion started by: cjjoy
5 Replies

9. Shell Programming and Scripting

Passing arguments to a Perl script

I am playing around with Perl and wrote the script below that is executed from the command line, it will split data up in a file based on a value supplied. When executed you provide two arguments - the file that contains the data to be split and the character you want to split by. It works as... (4 Replies)
Discussion started by: jyoung
4 Replies

10. Shell Programming and Scripting

Passing arguments to a script

I've written a script (bgrep) for a more advanced grep command (& attached a cut down version below). I'm trying allow all grep options to be used, or in any combination. The script works fine if I type say bgrep -i -files product it will return a non-case sensitive list of matches for... (3 Replies)
Discussion started by: Kevin Pryke
3 Replies

Featured Tech Videos