Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to assign to a bash variable the first result of locate?

I can allocate a path to a certain variable from bash:

VAR1=/home/alvas/something

I can find it automatically:

$ cd
$ locate -b "something" .
/home/alvas/something
/home/alvas/someotherpath/something

But how do I assign the first result from locate as a variable's value?

I tried the following but it doesn't work:

alvas@ubi:~$ locate -b 'mosesdecoder' . | VAR1=
alvas@ubi:~$ VAR1
VAR1: command not found
like image 488
alvas Avatar asked Sep 14 '25 21:09

alvas


1 Answers

You need to assign the output of the locate command to the variable:

VAR1=$(locate -b 'mosesdecoder' . | head -n 1)

(Use head to get the top n lines).

The construct $(...) is called command substitution and you can read about it in the Command Substitution section of the Bash Reference Manual or of the POSIX Shell Specification.

like image 118
fejese Avatar answered Sep 16 '25 11:09

fejese