02-16-2018
Hi,
I think the problem here (though I'm far from an expect expert, or indeed a regular user of it) is that the $? variable is a bash feature, and not an expect one. That's not how you capture exit values in expect.
So what's actually happening here is that your variable retcode is becoming equal to, quite literally, the string $?. And that's why your comparison fails later on.
I believe to capture exit values in expect you have to use the wait command to hang about and wait for your sent command to exit, and to capture information relating to how it exited, including among other things its exit value. You could then do a comparison on the information obtained by wait (the fourth value returned by it is I believe the exit value of the last process executed) and do your check that way.
Hope this helps.
10 More Discussions You Might Find Interesting
1. UNIX for Advanced & Expert Users
Hi Guys,
I was just wondering if anybody can help me with this problem.
OK, how we can get a value back from PL/SQL Script (not stored procedure/function)
See the below example: (for example aaa.sh)
#!/bin/ksh
VALUE=`sqlplus -s user/password@test_id <<EOF
@xxx.sq
EOF`
echo $VALUE
... (7 Replies)
Discussion started by: Shaz
7 Replies
2. Shell Programming and Scripting
I have a unix AIX script that ftps some files (mput, mget). How can I check (in the script) to see if the ftp failed? After the ftp I move the files out of the directory but do not want to move files that have not been sent. The script will run as a cron job. (2 Replies)
Discussion started by: rayg50
2 Replies
3. Shell Programming and Scripting
hi all
my system is linux red hat
i have a script that runs some object .
the object return some code to the system
i see the code by writing echo $?
i want to ask in the script if $? equals 14
how shell is do that in the script
thanks (3 Replies)
Discussion started by: naamas03
3 Replies
4. UNIX for Dummies Questions & Answers
Hi All,
Can anyone please let me know the syntax / how to pick up the Return Code ( RC) from the mailx command and return it to SAS uisng 'system()' function and '${?}'.
I am in a process to send the mail automatically with an attachment to bulk users. I have used 'Mailx' and 'Unencode'... (0 Replies)
Discussion started by: manas6
0 Replies
5. Shell Programming and Scripting
Hi Guys,,
I am having a unix script which is running the DB2 Insert command.
For the insert command, there were no records to be updated.
SQL0100W No row was found for FETCH, UPDATE or DELETE; or the result of a
query is an empty table. SQLSTATE=02000
+ + echo 1
STAGE_RC=1
+ ]
... (6 Replies)
Discussion started by: mac4rfree
6 Replies
6. Shell Programming and Scripting
Hello folks,
I have a question that if i type ls command and type echo $? it always show "0", how i could do this change that when i type ls it will show me 1, actually i want to change the return code of commands from 0 to 1.
Thanks
Bash (5 Replies)
Discussion started by: learnbash
5 Replies
7. Shell Programming and Scripting
I need to try and get the error return code from the tar command when being used as follows:
tar tvf tarfile 2>logfile | tee -f outputfile
ErrorStat="$?"
I would like to save the error return code from the tar command in a variable,
howver, the example above it is saving the 'tee' error... (7 Replies)
Discussion started by: nck
7 Replies
8. Shell Programming and Scripting
Hello,
I am woring on a script where I am getting strange situation.This script actually fetch the source code and tar that code and send to NAS location.This code resides in MKS tool...and we are fetching the source code on checkpoint label basis and script is working fine.First it synch the... (0 Replies)
Discussion started by: anuragpgtgerman
0 Replies
9. Shell Programming and Scripting
Hi there.
There is a shell script:
#!/bin/bash
ARGS=`(grep -i $1 old.txt || grep -i $1 new.txt) |awk 'BEGIN {FS=","}{print "\x27" $5 "\x27"}' | tr "\n" " "`
/usr/bin/expect -- << EXPECTEND
spawn -noecho myssh myhost.localnet
log_user 0
expect root
log_user 1
send "/home/one.pl... (4 Replies)
Discussion started by: urello
4 Replies
10. Shell Programming and Scripting
cat test.sh
#!/bin/sh
expect <<- EOF
set timeout 5
spawn ssh -o StrictHostKeyChecking=no lyang0@128.224.178.245 -C mkdir -p /tmp
expect {
"Password:" {send "root\r"}
}
spawn scp -o StrictHostKeyChecking=no /tmp/1 lyang0@128.224.178.245:/tmp/
... (1 Reply)
Discussion started by: yanglei_fage
1 Replies
WAIT(1) BSD General Commands Manual WAIT(1)
NAME
wait -- await process completion
SYNOPSIS
wait [pid]
DESCRIPTION
If invoked with no arguments, the wait utility waits until all existing child processes in the background have terminated.
Available operands:
pid If a pid operand is specified, and it is the process ID of a background child process that still exists, the wait utility waits until
that process has completed and consumes its status information, without consuming the status information of any other process.
If a pid operand is specified that is not the process ID of a child background process that still exists, wait exits without waiting
for any processes to complete.
The wait utility exits with one of the following values:
0 The wait utility was invoked with no operands and all of the existing background child processes have terminated, or the process
specified by the pid operand exited normally with 0 as its exit status.
>0 The specified process did not exist and its exit status information was not available, or the specified process existed or its exit
status information was available, and it terminated with a non-zero exit status.
If the specified process terminated abnormally due to the receipt of a signal, the exit status information of wait contains that termination
status as well.
STANDARDS
The wait command is expected to be IEEE Std 1003.2 (``POSIX.2'') compatible.
BSD
June 5, 1993 BSD