Visit The New, Modern Unix Linux Community


Command assigned to a variable is failed or not having any data - error


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Command assigned to a variable is failed or not having any data - error
# 1  
Command assigned to a variable is failed or not having any data - error

Hi,

My command is getting stuck while running it.

observed that the grep command doesn't returned any data ($? was 1) and it failed.
This command is assigned into the variable and used in other command as script progresses. To continue the script output, i have to press ^C twice and script continues for the loop.

Break didn't worked on this and have to press ^C twice.

full code
Code:
pdate=` { date +%Y%m%d; for d in Mon Tue Wed Thu Fri; do date +%Y%m%d -d "last $d"; done; } | sort | tail -5`
for d in $pdate; 
do 
filename=`grep $i /home/lim/updates/logs/log*$d* | cut -d ':' -f1 | uniq`; 
updatefile=$(awk -v var=$i  '1; $0 ~ var {exit}' $filename | awk '/upd_/ {a=$0} END{print a}' | cut -d ' ' -f3); 
completiontime=( $(grep $updatefile /home/lim/config/load_updates.hst | grep "Unpack complete" | cut -d " " -f5-7) ); 
echo  "$(tput sgr 0) Processing_date - $(tput setaf 2) $d $(tput sgr 0) UpdatePackage - $(tput setaf 6) $updatefile $(tput sgr 0) Processing_Time $(tput setaf 3)${completiontime[@]:0} $(tput sgr 0)" ;
done;


Code:
filename=`grep $i /home/lim/updates/logs/log*$d* | cut -d ':' -f1 | uniq`; updatefile=$(awk -v var=$i  '1; $0 ~ var {exit}' $filename | awk '/upd_/ {a=$0} END{print a}' | cut -d ' ' -f3 ); 
completiontime=( $(grep $updatefile /home/lim/config/load_updates.hst | grep "Unpack complete" | cut -d " " -f5-7 ) )

Command failed and $? = 1
Code:
grep $i /home/lim/updates/logs/log*$d* | cut -d ':' -f1 | uniq

tried workaround to get always true before passing in if condition
Code:
grep $i /home/lim/updates/logs/log*$d* | cut -d ':' -f1 | uniq || true

if code i tried

---------- Post updated 10-24-16 at 01:46 AM ---------- Previous update was 10-23-16 at 10:31 PM ----------

The below code worked as of nowSmilie

Code:
if [[ ! -f `grep $i /home/lim/updates/logs/log*$d* | cut -d ':' -f1 | uniq` ]]; then
 echo "File is missing for $d ";
 break;
 else
stmt;
fi

# 2  
You have three greps in your code - so which one is the culprit? Is it possible that some command is trying to read from the terminal becaues e.g. $filename is not set? Is $i defined, or empty?

Still it might be worthwhile to step back and reconsider the entire approach. The comments in your other thread, esp. this post and post#11 there still apply. The entire thing might be doable in one single awk script.
# 3  
Quote:
Originally Posted by RudiC
You have three greps in your code - so which one is the culprit? Is it possible that some command is trying to read from the terminal becaues e.g. $filename is not set? Is $i defined, or empty?

Still it might be worthwhile to step back and reconsider the entire approach. The comments in your other thread, esp. this post and post#11 there still apply. The entire thing might be doable in one single awk script.
The below code fails as there will be no file having such pattern. $i is not available in the log files at start of the day till evening.in that case the below grep fails.
grep $i /home/lim/updates/logs/log*$d*
If this fails automatically the next two grep/awk fails.
Currently the working condition for me is using if and based on that proceed with script.

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #741
Difficulty: Medium
The successor to FORTRAN 77 was informally known as Fortran 90.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Perl multiple qr assigned to variable

Experts, I'm having problems with the code below. I'm trying to test $var2 for two different regexs. I thought it could be done per below, but I'm getting the following error when running. $ ./test.pl b fed50c0100**** Unescaped left brace in regex is deprecated, passed through in regex; marked... (2 Replies)
Discussion started by: timj123
2 Replies

2. AIX

access data from a new disk was assigned another rootvg

Hello, I try to access to data after connect a new disk (hdisk1) to a AIX 7.1 system This new disk was assigned to a rootvg from another AIX 6.1 system. It seem not assigned to any vg but if I tried to assigned hdisk1 to rootvg i get : Data seem to be always here ... ouf ;-)... (4 Replies)
Discussion started by: Voran
4 Replies

3. Shell Programming and Scripting

Syntax error piping to bc on command line - works when assigned to var

I have a script which outputs some timing data a line at a time. There are approx. 10 lines echoed, each line looks something like this: 0.741 http://checkip.dyndns.org 94.170.119.226Since I needed to add all the values in the first column, I piped the output to grep, matching and printing the... (7 Replies)
Discussion started by: gencon
7 Replies

4. UNIX for Dummies Questions & Answers

How do you check if a variable has been assigned?

I am trying to check whether a variable has been assigned on the command line or not. Here is what I did: #!/usr/bin/bash if( $variable == '\0') { print "variable was not assigned" exit } else NF = 2 {print $1, ""} exit fi awk -f question1.awk variable = 58 letters.txt. So... (3 Replies)
Discussion started by: Fred63528
3 Replies

5. Shell Programming and Scripting

How to split a data assigned to a variable

The requirement is, there is a log file which contains a huge data. i need to get a particular field out of it by searching with another field. ex: 2011-03-28 13:00:07,423 : millis=231 q={ call get_data_account(?,?,?,?,?) }, params= i need to search for the word "get_data_account" in file... (1 Reply)
Discussion started by: Jassz
1 Replies

6. Solaris

Command files when the output is assigned to a variable

Hi, i'm posting this in the Solaris forum although maybe it should be better in the General unix forum, I'm formatting an output witht he following command: crontab -l | grep GBOUAT8 | grep UTP | grep -i stop | sed 's/\\//' 08 2 * * 2-6 /apps/sum_glob/gbo_uat/sparse/bin/dmg_cronlaunch -ENVI... (2 Replies)
Discussion started by: Cvg
2 Replies

7. Shell Programming and Scripting

[Bash] Variable won't get assigned value

I am making of a script that will go through a couple of for loops and create file names based on the values in that loop, however the variable that combines everything is not getting assigned properly: #! /bin/bash for imod in K33_j1b_WS9_6 do for emod in mb2A mb2C mb3A mb3C mb4A... (1 Reply)
Discussion started by: badinsults
1 Replies

8. Shell Programming and Scripting

Check if a variable has a value assigned?

Hi, I want to check if a variable has a value assigned to it or not. I can do following - cat $Var > File1 if then echo "$Var has value" else echo "$Var is null" fi But I have to check for 3 Variables and I want to wrap it up in couple of unix statements. Any... (3 Replies)
Discussion started by: sumeet
3 Replies

9. Shell Programming and Scripting

Return code of command assigned to variable

How do I evaluate the result of a command assigned to a variable?? Example: var1=`cmd` rc=$? rc will be the result of the assignment rather than cmd since it executes after. How do I evaluate the result of the command itself? Cheers..:confused: (2 Replies)
Discussion started by: browndr
2 Replies

10. UNIX for Dummies Questions & Answers

What does $? mean when assigned to a variable?

If i write this statement in a Korn Shell script RCODE=$? what possibly does it eman? (3 Replies)
Discussion started by: ranjita.c
3 Replies

Featured Tech Videos