Мой сценарий оболочки дает мне неправильный вывод

1510
Purpe_Fedora

Я создал скрипт, который должен (в следующем разделе) хранить имя и расположение их соответствующих значений в назначенной переменной, а затем перечислять переменные имени в столбце. Я успешно сделал это раньше, но по какой-то причине все, что я получаю, это пустые строки. Пожалуйста, помогите мне, потому что я, кажется, не могу разобраться с этой проблемой.

#This is where sections are added or removed #SECTIONnumberNAME=$(echo "number: section name") #SECTIONnumberLOCARION=./Setup_Fedora_Sections/section_name.sh  SECTION1NAME=$(echo "1: Wireless Card") SECTION1LOCARION=./Setup_Fedora_Sections/Setup_Fedora_Wireless_Card.sh SECTION2NAME=$(echo "2: Basic Setup") SECTION2LOCARION=./Setup_Fedora_Sections/Setup_Fedora_Basic_Setup.sh SECTION3NAME=$(echo "3: Optional Programs") SECTION3LOCARION=./Setup_Fedora_Sections/Setup_Fedora_Optional_Programs.sh  #This is where selection offers are added or removed #echo $'\n'$SELECTIONnumberNAME echo $'\n'$SELECTION1NAME echo $'\n'$SELECTION2NAME echo $'\n'$SELECTION3NAME 
0
Зачем вам когда-либо использовать `variable = $ (echo text)` вместо `variable = text`? AFH 7 лет назад 0
Часто удобно всегда копировать и вставлять (или никогда) имя переменной, чтобы избежать ошибок ... Вы печатаете пустые переменные (`$ SE` LE`CTIONxNAME`, а не `$ SECTIONxNAME`). Более того, для отладки скрипта вы можете написать `set -` (и` set + `) в начале (и в конце) части для отладки. Hastur 7 лет назад 0

1 ответ на вопрос

1
DKing

Возможно, вы захотите изменить текст «ВЫБОР» в более поздней части сценария на «СЕКЦИЯ», чтобы он соответствовал первой части сценария. Это похоже на простую проблему правописания. Итак, это работает для меня:

#This is where selection offers are added or removed #echo $'\n'$SELECTIONnumberNAME echo $'\n'$SECTION1NAME echo $'\n'$SECTION2NAME echo $'\n'$SECTION3NAME 
Вау, спасибо, что так легко пропустить эти различия, спасибо за то, что указали на мой недосмотр. Purpe_Fedora 7 лет назад 0
просто из любопытства есть ли способ превратить вышеприведенное исправление в переменную, чтобы оно отображалось одинаково, а не в одной строке? Purpe_Fedora 7 лет назад 0
Возможно, я бы лично сделал несколько изменений, если бы это был мой код. Во-первых, я бы следовал рекомендациям AFH и просто использовал `variable =" value "`. Но я думаю, что вы ищете массив. Также, когда я выполняю эхо, я не буду делать `$ '\ n'`, а вместо этого буду делать что-то вроде` echo -e "\ n $ variable1 \ n $ variable2 \ n" `. DKing 7 лет назад 0
В чем разница между этими двумя методами? Purpe_Fedora 7 лет назад 0
Первый более очевиден. Простое присвоение текста переменной напрямую легко и быстро. Попытка создать подоболочку и запустить отдельную команду, а затем передать этот вывод в переменную требует ресурсов, и запись занимает больше времени. Что касается последней части, это просто удобство и предпочтение. Вместо того, чтобы иметь несколько команд, вы можете иметь одну, и вам нужна только одна строка. Также меньше символов для ввода. DKing 7 лет назад 0

Похожие вопросы