04-16-2019
Quote:
Originally Posted by
sankasu
In which case is there a possibility to evaluate the output of the command to another variable.
If your loop is behind a pipe, that would mean stuffing your entire loop inside $( ). Or storing the result in a temporary file.
This is just guessing though. This is a really common problem which we can't rule out without seeing more of your code.
Last edited by Corona688; 04-16-2019 at 04:03 PM..
This User Gave Thanks to Corona688 For This Post:
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
Hi,
I am giving a grep command, and i am getting the output. i want to store it in a variable
for eg
a = grep '12345' /dir/1/2/log.txt ( the output is number)
b= grep 'basic' /dir/1/2/log1.txt (in this case the output is character)
so how to assign the output of grep to a variable
... (1 Reply)
Discussion started by: vasikaran
1 Replies
2. Shell Programming and Scripting
Good day, everyone!
I've got a small problem with re-assigning the variable form the loop. What I'm trying to do is:
#!/bin/bash/
VAR1="AAA"
VAR2="BBB"
VAR3="CCC"
for WORD in VAR1 VAR2 VAR3;
do
$WORD="DDD"
echo $WORD
done
:o
That's the output and error messages:
-bash:... (2 Replies)
Discussion started by: Nafanja
2 Replies
3. Shell Programming and Scripting
Hi
I am trying to write a function that needs to be able to assign the last run shell command to a variable. The actual command string itself not the exit code of the command.
I am using the bash command recall ability to do this as follows:
alias pb='ps | grep ash' ... (3 Replies)
Discussion started by: Moxy
3 Replies
4. Shell Programming and Scripting
Hi ,
I would like to assign command (with pipe) output to a variable. The code is as follows. The goal of the code is to get the last folder folder with a particular name pattern.
myDate=`ls | grep 2009 | tail -1`
echo "myDate=" $myDate
However, in the presence of the pipe, the code... (3 Replies)
Discussion started by: jeff_cen
3 Replies
5. Shell Programming and Scripting
greetings all,
I am have a heck of a time trying to accomplish a very simple thing. I have an array of "shortname<spaces>id" created from a dscl output. I want to assign shortname=word1 and id=word2. I have tried
shortname=$(${textArray} | awk '{print $1}') - and get 'awk : cannot open... (3 Replies)
Discussion started by: macnetdaemon
3 Replies
6. Shell Programming and Scripting
Hi,
I've a requirement where I want to re-assign the value in the variable through which FOR LOOP loops.
For e.g.
Snippet of code
---------------
for i in $var
do
echo $i >> $tempFile
var=`echo $another_var | awk -F" " '{print $1}'`
done
I am re-assigning var so... (2 Replies)
Discussion started by: dips_ag
2 Replies
7. Shell Programming and Scripting
Hi, wondering if it's been asked before but didn't find matches from google. Basically I have this line:
myvar=$(echo -e "a\tb")
Now somehow the '\t' from the echo output gets replaced with white space and then stored in $myvar.
It creates a problem for me later to use tab as delimiter to do... (2 Replies)
Discussion started by: birddie
2 Replies
8. Shell Programming and Scripting
Code
set -x
STATUS="0"
echo $STATUS
for i in `ls -ltr Report*|awk '{ print $9 }'`
do
if
then
flg = "`head -1 "$i" |cut -c 31-33`"
echo `head -1 "$i" |cut -c 31-33`
echo $flg
if
then
echo "having Fun"
STATUS="2"
else
echo "no Fun"
fi
fi (2 Replies)
Discussion started by: Funkeydude
2 Replies
9. Shell Programming and Scripting
Hi
As bash does not support multidimensional arrays (?), I need some help with a problem. What I want to do is to assign variable names containing a counter in a loop .
what I want to do is basically something like this:
#!/bin/bash
for i in {1..8}; do
var$i = "some command"
done... (6 Replies)
Discussion started by: Tobbev
6 Replies
10. UNIX for Dummies Questions & Answers
Hi,
I am trying to get a loop counter i and set its value as the ouput of a command:
i=`printmo TEST1 | grep -i TEST2 | wc -l`
Then I want to use i as counter to run a loop i number of times.
Like if i gets a value of 5 I'll have to run loop 5 times.
But will i here be a numeric... (3 Replies)
Discussion started by: pat_pramod
3 Replies
LEARN ABOUT DEBIAN
shell-quote
SHELL-QUOTE(1p) User Contributed Perl Documentation SHELL-QUOTE(1p)
NAME
shell-quote - quote arguments for safe use, unmodified in a shell command
SYNOPSIS
shell-quote [switch]... arg...
DESCRIPTION
shell-quote lets you pass arbitrary strings through the shell so that they won't be changed by the shell. This lets you process commands
or files with embedded white space or shell globbing characters safely. Here are a few examples.
EXAMPLES
ssh preserving args
When running a remote command with ssh, ssh doesn't preserve the separate arguments it receives. It just joins them with spaces and
passes them to "$SHELL -c". This doesn't work as intended:
ssh host touch 'hi there' # fails
It creates 2 files, hi and there. Instead, do this:
cmd=`shell-quote touch 'hi there'`
ssh host "$cmd"
This gives you just 1 file, hi there.
process find output
It's not ordinarily possible to process an arbitrary list of files output by find with a shell script. Anything you put in $IFS to
split up the output could legitimately be in a file's name. Here's how you can do it using shell-quote:
eval set -- `find -type f -print0 | xargs -0 shell-quote --`
debug shell scripts
shell-quote is better than echo for debugging shell scripts.
debug() {
[ -z "$debug" ] || shell-quote "debug:" "$@"
}
With echo you can't tell the difference between "debug 'foo bar'" and "debug foo bar", but with shell-quote you can.
save a command for later
shell-quote can be used to build up a shell command to run later. Say you want the user to be able to give you switches for a command
you're going to run. If you don't want the switches to be re-evaluated by the shell (which is usually a good idea, else there are
things the user can't pass through), you can do something like this:
user_switches=
while [ $# != 0 ]
do
case x$1 in
x--pass-through)
[ $# -gt 1 ] || die "need an argument for $1"
user_switches="$user_switches "`shell-quote -- "$2"`
shift;;
# process other switches
esac
shift
done
# later
eval "shell-quote some-command $user_switches my args"
OPTIONS
--debug
Turn debugging on.
--help
Show the usage message and die.
--version
Show the version number and exit.
AVAILABILITY
The code is licensed under the GNU GPL. Check http://www.argon.org/~roderick/ or CPAN for updated versions.
AUTHOR
Roderick Schertler <roderick@argon.org>
perl v5.8.4 2005-05-03 SHELL-QUOTE(1p)