-2
  1. Если переменная оболочки x имеет значение 5, и вы переназначаете ее с помощью x = "expr $ x +10", каково новое значение x?  Каково было бы значение, если бы вместо этого использовались одинарные кавычки?  Какая наиболее вероятная ошибка в вышесказанном?

2 ответа2

1

новое значение x будет следующей литеральной строкой:

expr 5 + 10  

если вместо этого использовать одинарные кавычки, значение x будет такой литеральной строкой:

expr $x +10 

почему разница? потому что расширение переменной работает внутри двойной кавычки, а не одинарной кавычки.
если вы хотите добавить 10 к x, вы действительно должны сделать это:

x=5
x=`expr $x + 10` # here is backquote
1

Новое значение x - expr 5 + 10 . Для одинарных кавычек значение будет expr $x + 10 . Ошибка заключается в передаче строки в правой части оператора присваивания, когда оценка была явно предназначена.

В зависимости от политики вашего учебного заведения и / или кодов академической чести от вас может потребоваться, под угрозой штрафа вплоть до и, возможно, включая исключение, ссылаться на этот ответ Суперпользователя при подаче домашнего задания. В зависимости от требований вашего инструктора формат цитирования может отличаться, но при отсутствии конкретных указаний в качестве разумного значения по умолчанию должно использоваться следующее:

Миллер, Аарон. Ответ на «Переменные оболочки. Я новичок в этом, и у меня есть «супер пользователь». Биржа стеков, 2013. Web. 14 ноября 2013 г. < https://superuser.com/a/675733/162434 >

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .