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
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
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
2. Shell Programming and Scripting
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
3. Shell Programming and Scripting
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
4. Shell Programming and Scripting
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
5. Shell Programming and Scripting
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
6. Shell Programming and Scripting
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
7. Shell Programming and Scripting
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
8. Shell Programming and Scripting
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
9. Shell Programming and Scripting
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
10. Shell Programming and Scripting
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
LEARN ABOUT MOJAVE
osascript
OSASCRIPT(1) BSD General Commands Manual OSASCRIPT(1)
NAME
osascript -- execute OSA scripts (AppleScript, JavaScript, etc.)
SYNOPSIS
osascript [-l language] [-i] [-s flags] [-e statement | programfile] [argument ...]
DESCRIPTION
osascript executes the given OSA script, which may be plain text or a compiled script (.scpt) created by Script Editor or osacompile(1). By
default, osascript treats plain text as AppleScript, but you can change this using the -l option. To get a list of the OSA languages
installed on your system, use osalang(1).
osascript will look for the script in one of the following three places:
1. Specified line by line using -e switches on the command line.
2. Contained in the file specified by the first filename on the command line. This file may be plain text or a compiled script.
3. Passed in using standard input. This works only if there are no filename arguments; to pass arguments to a STDIN-read script, you must
explicitly specify ``-'' for the script name.
Any arguments following the script will be passed as a list of strings to the direct parameter of the ``run'' handler. For example, in
AppleScript:
a.scpt:
on run argv
return "hello, " & item 1 of argv & "."
end run
% osascript a.scpt world
hello, world.
The options are as follows:
-e statement
Enter one line of a script. If -e is given, osascript will not look for a filename in the argument list. Multiple -e options may be
given to build up a multi-line script. Because most scripts use characters that are special to many shell programs (for example,
AppleScript uses single and double quote marks, ``('', ``)'', and ``*''), the statement will have to be correctly quoted and escaped to
get it past the shell intact.
-i Interactive mode: osascript will prompt for one line at a time, and print the result, if applicable, after each line. Any script sup-
plied as a command argument using -e or programfile will be loaded, but not executed, before starting the interactive prompt.
-l language
Override the language for any plain text files. Normally, plain text files are compiled as AppleScript.
-s flags
Modify the output style. The flags argument is a string consisting of any of the modifier characters e, h, o, and s. Multiple modi-
fiers can be concatenated in the same string, and multiple -s options can be specified. The modifiers come in exclusive pairs; if con-
flicting modifiers are specified, the last one takes precedence. The meanings of the modifier characters are as follows:
h Print values in human-readable form (default).
s Print values in recompilable source form.
osascript normally prints its results in human-readable form: strings do not have quotes around them, characters are not escaped,
braces for lists and records are omitted, etc. This is generally more useful, but can introduce ambiguities. For example, the
lists '{"foo", "bar"}' and '{{"foo", {"bar"}}}' would both be displayed as 'foo, bar'. To see the results in an unambiguous form
that could be recompiled into the same value, use the s modifier.
e Print script errors to stderr (default).
o Print script errors to stdout.
osascript normally prints script errors to stderr, so downstream clients only see valid results. When running automated tests, how-
ever, using the o modifier lets you distinguish script errors, which you care about matching, from other diagnostic output, which
you don't.
SEE ALSO
osacompile(1), osalang(1), AppleScript Language Guide
HISTORY
osascript in Mac OS X 10.0 would translate '
' characters in the output to '
' and provided c and r modifiers for the -s option to change
this. osascript now always leaves the output alone; pipe through tr(1) if necessary.
Prior to Mac OS X 10.4, osascript did not allow passing arguments to the script.
Mac OS X April 24, 2014 Mac OS X