2013-03-24 2 views
0

Вот вопрос:Shell Котировка с и без переменных окружения

Когда оболочка читает командную строку, в чем разница между текстом заключен в двойных кавычках (") и текст, заключенных между одинарными кавычками (')?

Вы должны рассмотреть два случая, в которых есть переменные окружения, и нет никаких экологических переменных.

Я не могу найти разницу, мне используются обоих случаях такой же способ.

У меня есть немного понимания жестких и мягких цитат, но это меня бросило.

+0

В этом контексте нет никакой разницы между переменными среды и нормальными переменными оболочки. Почему вы верите иначе? – chepner

+0

С другой стороны, я думаю, что ваш вопросник ошибается, ссылаясь на переменные вообще как «переменные среды». Читая это так, ваше понимание того, что двойные кавычки допускают расширение параметра, является правильным ответом. – chepner

+0

Благодарим вас за разъяснение. – user2181271

ответ

0

Двойные кавычки обычно используются там, где значения переменных Shell могут быть извлечены. Пример:

my_name="prabhu" 
echo "printing $my_name" 

Выход: печать прабху

Одинарные кавычки не печатает значение переменной, а не печатает данный контент. Пример:

my_name="prabhu" 
echo 'printing $my_name' 

Выход: печать $ my_name

+0

Да, это то, что я понимаю, но я не понимаю, какая разница между тем, когда используются переменные среды, а когда нет. Спасибо за ваш ответ. – user2181271

0

вопрос плохо сформулирован. Кажется, что это относится к переменным в целом и не пытается провести различие между «переменными оболочки» и «переменными среды» (то есть переменными оболочки, помеченными для экспорта дочерних процессов). Если это так, то правильный ответ, конечно, состоит в том, что строки с двойными кавычками допускают расширение параметра, а строки с одной кавычкой - нет.

Смежные вопросы