Сценарий оболочки esx busybox, чтение строки за строкой из переменной с использованием while

У меня была похожая проблема после недавней установки Manjaro XFCE. Приходилось перезагружать компьютер каждый раз, когда он переходил в спящий режим, так как экран зависал.

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

0
23.03.2021, 22:39
1 ответ

Перенаправление строки здесь -<<<не является стандартной функцией, и sh в Busybox ее не поддерживает. Сообщение об ошибке немного странное, но, возможно, оно интерпретируется как <<, за которым следует <. Кроме того, здесь -doc синтаксис, начатый <<— это совершенно другое.

Вам придется сделать что-то вроде

echo "$info" | while IFS= read -r line; do 
    printf '%s\n' "$line" 
done

Или передать данные через временный файл:

tmpfile=$(mktemp)
awk '/pat1/{flag=1}/pat2/{flag=0}flag' file1 > "$tmpfile"
while IFS= read -r line; do 
    printf '%s\n' "$line" 
done < "$tmpfile"
rm "$tmpfile"

Но см. Почему моя переменная локальна в одном цикле while read, но не в другом похожем цикле? , если вы используете первый.

0
28.04.2021, 22:59

Теги

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