I have an interactive script that is quite critical to our production environmentl thus updating it to run non-interactively is not an option.
The script takes a varying number of arguments, which it ques untill user confirm end of data entry
e.g of user input [arguments]:
the arguments to be passed to the script are in a file. say file.in
i tried using a here-document, but it turns out that you can't put a here-document in a file as i kept getting "terminator not found" error message from ksh
i wanted to run the script like this:
script << here_doc
where here_doc had:
it didn't work! as explained above.
now the funny part, if i pass the arguments through a pipe to the script standard input, it works when using echo or print to print the arguments to standard output:
i.e. [Korn shell]
^^ this works perfectly, my script runs and reads its input from the pipe. print also works as above
but my problem is, i have a file of these arguments that i want the script to sequentially read its input from.
if I use cat, it doesn't not work!!! the script reads NULL in the first variable!!
the same also happens when I do
myscript < file.in #script reads NULL in first variable
by the way, the script that is trying to run this script is on another machine so it ssh-es to the host machine and run the script. But i don't think this has anything to do with all this.
e.g.
Can anybody please suggest something to get myscript to read args from a file?
you can pass file name as a argument to Your shell script like this
$ script.sh filename
in shell script arguments are stored into special variables i.e first argument is stored into $1,second in $2 .....if you want to get all arguments in one go use $*.
so inside the script use :
$ filename=$1 #to get the file name.
Then use for loop to get the contents of file like this..
for i in `cat $filename`
do
firstline=$i
your logic..........
done
Note : if the file location is differ then script location the use relative path name as :
$ script.sh /home/rajiv/filename
Last edited by rajiv1625; 12-07-2009 at 02:01 AM..
if you want to get all arguments in one go use $0.
I am new to the forum so I was browsing some of the old threads, I noticed this post and unless this works differently in the shell you are using the above quote is incorrect. Maybe it was just an oversight.
$0 refers to the name of the command itself, $* will provide all arguments at once. See below:
suppose i have a perl script that is normally run this way:
./checkdisk.pl -H hostname -w 40 -c 80
but, for whatever reason, i cannot run the script directly as it should. But i can cat it through pipe. How can i pass the arguments "-H hostname -w 40 -c 80"?
so this is what i'm doing,... (6 Replies)
Hi all,
I am working on a project, in which I have to connect to Bluetooth low energy device. I am able to connect and do data transfer from command line. But I want to do from script
Here is my script
#!/bin/bash
#sudo hcitool -i hci0 lescan
sleep 1
sudo hcitool -i hci0 lecc --random... (8 Replies)
Dear Users,
I have installed a standalone program to do multiple sequence alignment which takes user parameters to run the program. I have multiple sequence files and want to automate this process through a bash script. I have tried to write a small bash code but its throwing errors.
Kindly... (13 Replies)
I've tried to find a solution to this, but I"m stumped.
OS - RH Linux 5.9
I have a bash script <myProgram.sh> that gets executed manually and creates a small response file. I'm trying to automate the running of this script.
When myProgram.sh runs, it prompts the user to enter 2 pieces of... (13 Replies)
myscript.sh
#!/bin/bash
ARGA=$1
if ; then
echo "${ARGA}:Confirmed"
else
echo "${ARGA}:Unconfirmed"
fi
when I run the above script from the command line, i run it as:
./myscript.sh jsmith
now some times, i need to runn it this way: (8 Replies)
hi,
Is it possible to pass arguments to a sftp script and use those arguments in the program?
for example
sftp_script
FILENAME=$1
#!/usr/bin/expect
spawn /usr/bin/sftp abc@ftp.abc.com
expect "abc@ftp.abc.com's password:"
send "pass\r"
expect "sftp>"
send "mput $FILENAME\r"... (9 Replies)
Hi,
I want to run a target of makfile using script by passing different arguments to it again n again. I i need to grep certain things from the log file.
eg
make abc KAB=8 BAC=8 >& KAB_BAC.log
grep "timeA" KAB_BAC.log
grep "timeB" KAB_BAC.log
(i want to store the difference of the two time... (0 Replies)
Hi,
I have a my script here--
print "The Perl Script does the User health check and system health check...\n";
print "---------------------------------------------------------------------\n";
# use strict;
my($OS);
$OS = $^O;
# need to test @ARGV before GetOptions shifts it
if (@ARGV... (1 Reply)
Hi,
I have a shell script called ftp.sh which is running continously in background.
I tried passing arguments to this script but it did not worked out.
Below is ftp.sh script. Please help me
case $param in
start) sleep_func "300"
echo "!ksh $scr_ddir/ftp.sh... (1 Reply)
Hi,
I have two shell variables $t1 and $t2 which I need to pass to a function in a shell script. The function will do some computation with those two variables and echo the resultant. But I do not know how to pass teh arguments.
The function written is
f1()
{......
........
}
What should... (3 Replies)