- Если переменная оболочки x имеет значение 5, и вы переназначаете ее с помощью x = "expr $ x +10", каково новое значение x? Каково было бы значение, если бы вместо этого использовались одинарные кавычки? Какая наиболее вероятная ошибка в вышесказанном?
2 ответа
новое значение x будет следующей литеральной строкой:
expr 5 + 10
если вместо этого использовать одинарные кавычки, значение x будет такой литеральной строкой:
expr $x +10
почему разница? потому что расширение переменной работает внутри двойной кавычки, а не одинарной кавычки.
если вы хотите добавить 10 к x, вы действительно должны сделать это:
x=5
x=`expr $x + 10` # here is backquote
Новое значение x
- expr 5 + 10
. Для одинарных кавычек значение будет expr $x + 10
. Ошибка заключается в передаче строки в правой части оператора присваивания, когда оценка была явно предназначена.
В зависимости от политики вашего учебного заведения и / или кодов академической чести от вас может потребоваться, под угрозой штрафа вплоть до и, возможно, включая исключение, ссылаться на этот ответ Суперпользователя при подаче домашнего задания. В зависимости от требований вашего инструктора формат цитирования может отличаться, но при отсутствии конкретных указаний в качестве разумного значения по умолчанию должно использоваться следующее:
Миллер, Аарон. Ответ на «Переменные оболочки. Я новичок в этом, и у меня есть «супер пользователь». Биржа стеков, 2013. Web. 14 ноября 2013 г. < https://superuser.com/a/675733/162434 >