Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Prefixing variable assignment doesn't work with echo

Tags:

bash

As far as I know, if you prefix a bash command with variable assignment the variable will take effect immediately. And it will only have effect within that command.

I tried this command in bash:

V=1 echo $V

However 1 is not printed out in the terminal which is not what I expected. So why it doesn't work?

like image 298
darklord Avatar asked Oct 21 '25 12:10

darklord


1 Answers

The variable will be passed in the environment of the command following it, not when the command is being evaluated (expanded). Any variable expansion will be done earlier by shell.

$ V=1 env | grep V=
V=1

To get it working:

$ V=1; echo $V
1
like image 100
heemayl Avatar answered Oct 24 '25 02:10

heemayl