переменная linux bash выдает 2 разных значения в зависимости от области?

#bash

#bash

Вопрос:

«$name» выдает 2 разных значения: ?

 #!/bin/bash

name=whoami
$name                                 # $name yields {user} being me is "jdl"

date >> /home/$name/crondate.txt      # $name yields "whoami"
 

Хотели бы иметь путь с использованием «jdl»?

Комментарии:

1. почему бы не использовать переменные $USER и $HOME, которые уже присутствуют

Ответ №1:

Значение name равно whoami .

В вашем первом примере это не $name само jdl по себе; это результат команды whoami при ее выполнении.

Если бы вы должны были запустить

 echo "$name"
 

тогда вы увидите значение самой переменной.

Ответ №2:

Если вы хотите указать jdl в name, вы должны использовать :

 name=$(whoami)
 

и если вы хотите распечатать значение echo $name

на самом деле, что делает ваш код :

 name=whoami
$name                                 # replace name to whoami and execute it

date >> /home/$name/crondate.txt      # replace name to whoami and the path is /home/whoami/crondate.txt