Если у вас версия dos2unix> = 7.1, вы можете использовать параметр -i, чтобы получить информацию о количестве разрывов строк. Также поддерживаются файлы UTF-16. Если у файла есть спецификация, dos2unix автоматически определяет, что это UTF-16, LE или BE. Если у файла нет спецификации, вы можете использовать опцию -ul, чтобы указать, что это UTF-16LE (или -ub для UTF-16BE).
dos2unix -i напечатает количество разрывов строк для DOS, Unix и Mac в указанном порядке. Пример (со спецификацией):
$ dos2unix -i utf16le.txt
50 0 0 UTF-16LE text utf16le.txt
Без спецификации:
$ dos2unix -ul -i utf16len.txt
50 0 0 no_bom text utf16len.txt
Дополнительную информацию см. В руководстве.
Как обсуждалось в комментариях, похоже, FvwmScript
происходит сбой из-за ошибки X BadValue , когда значение, возвращаемое сценарием оболочки, равно 0. Вероятно, это связано с тем, что он пытается настроить окно для размер 0.
Альтернативным решением является использование виджета HDipstick
, который представляет собой горизонтальную полосу в блоке фиксированной длины. Вот краткий, но полный пример:
WindowTitle {Status}
WindowSize 120 30
WindowPosition 900 1
Init
Begin
ChangeBackColor 3 {#000}
End
PeriodicTasks
Begin
If (RemainderOfDiv (GetTime) 2) == 0 Then
Begin
Set $length = (GetOutput {bash $HOME/.fvwm/scripts/StaTux/cpu.sh} 1 -1)
ChangeValue 3 $length
End
End
Widget 3
Property
Type HDipstick
Value 0
MinValue 0
MaxValue 200
ForeColor {#f00}
Size 110 20
Position 5 5
Main
Case message of
End
MinValue
и MaxValue
устанавливают ожидаемые ограничения на число, которое вы возвращаете из своего скрипта. Я выбрал 200 произвольно. Вызов PeriodicTasks
вашего скрипта получает этот номер и использует ChangeValue
для установки для него свойства Value
. Он будет масштабирован путем деления на 200 и умножения на ширину горизонтальной полосы, которая здесь в Size
равна 110 пикселям.
Играя с этим, я заметил ошибку в моей версии FvwmScript, из-за которой для некоторых низких значений отображалась полная полоса. Например, установка MaxValue
на 700 означала, что значения от 7 до 26 давали полную полосу.