пытается отобразить файл с помощью команды echo (с кавычками или без них) - PullRequest
1 голос
/ 31 октября 2019

Поэтому, когда я пытаюсь сделать

echo cat file1.txt 

На выходе получается cat file.txt

Однако, когда я делаю:

echo 'cat file1.txt'

Выходные данные - это фактическое содержимое файла file.txt

Хотя я понимаю, что команда echo вообще не требуется для достижения цели отображения содержимого файла, мне было любопытно, почему выходные данные отличаютсяэти данные ситуации

Ответы [ 2 ]

1 голос
/ 31 октября 2019

Поскольку вы запутались в поведении

Каждый unix-атрибут внутри `` рассматривается как команда saparate

, вы можете напрямую использовать команду `` on для назначения вывода команды в эту переменную

см. Ниже:

[cloudera@quickstart sub1]$ a=`echo "Hello"`
[cloudera@quickstart sub1]$ echo $a
Hello
[cloudera@quickstart sub1]$ 

В приведенном выше примере вы можете видеть, что я присваиваю вывод echo "Hello" переменной a

0 голосов
/ 31 октября 2019

Вы уверены, что набрали

echo 'cat file.txt'

, а не

echo `cat file.txt`

?

В первом случае я понятия не имею, что происходит. Во втором, однако, нет никакой тайны. В большинстве оболочек ввод

foo `bar`

означает, несколько (слишком) упрощенно, «run bar и использовать ее вывод в качестве параметров команды для запуска foo».

Если вы используете Bashэто описано в разделе подстановка команд в руководстве.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...