How to assign the output of a Bash command to a variable? [duplicate]
I have a problem putting the content of pwd
command into a shell variable that I'll use later.
Here is my shell code (the loop doesn't stop):
#!/bin/bash
pwd= `pwd`
until [ $pwd = "/" ]
do
echo $pwd
ls && cd .. && ls
$pwd= `pwd`
done
Could you spot my mistake, please?
Solution 1:
Try:
pwd=`pwd`
or
pwd=$(pwd)
Notice no spaces after the equals sign.
Also as Mr. Weiss points out; you don't assign to $pwd
, you assign to pwd
.
Solution 2:
In shell you assign to a variable without the dollar-sign:
TEST=`pwd`
echo $TEST
that's better (and can be nested) but is not as portable as the backtics:
TEST=$(pwd)
echo $TEST
Always remember: the dollar-sign is only used when reading a variable.