Самый простой способ - это, вероятно, использовать контейнер Docker, или если бы 32-битные контейнеры было легче найти.
Здесь есть официальный минимальный образ ArchLinux , но, поскольку он не говорит иначе, а это 2016 год, я бы предположил, что он 64-битный. Однако он показывает сценарий, который использовался для создания изображения, поэтому, вероятно, не составит большого труда добавить параметры, переключающие архитектуру.
Если у вас есть минимальный образ, установка LibreOffice будет простой задачей с использованием pacman. Запуск приложений X внутри контейнера немного сложен, но должен работать, если вы используете - net = host
и -v / home / USER: / home: USER
при создании контейнера и используйте то же имя пользователя / идентификатор пользователя внутри контейнера, что и снаружи.
Вы также можете использовать описанный ниже метод
cat script.sh
#!/bin/bash
echo $1 | awk '{print substr($1,1,1)}'
sh script.sh 90
Where 90 is the user input
выход 9
numbers='901.32.02'
firstdigit="${numbers:0:1}"
printf 'The first digit is "%s"\n' "$firstdigit"
Результатом вышеизложенного является
The first digit is "9"
Расширение параметра ${numbers:0:1}
в bash
дает вам подстроку длины 1 от начала строки (смещение ноль ). Этоbash
-специфическая замена параметра (также в некоторых других оболочках, но не в стандарте POSIX ).
В оболочке POSIX вы также можете
firstdigit=$( printf "%s\n" "$numbers" | cut -c 1 )
Это будет использовать cut
для возврата только первого символа.
Или, используя раскрытие стандартных параметров,
firstdigit="${numbers%${numbers#?}}"
Сначала используется ${numbers#?}
для создания строки с первой цифрой , удаленной , затем эта строка удаляется с конца $numbers
, используя ${numbers%suffix}
(, где suffix
— результат первое расширение ).
Вышеприведенное предполагает, что первый символ $numbers
на самом деле является цифрой. Если это не так, вам придется сначала удалить цифры, отличные от -, из начала значения :
numbers=$( printf '%s\n' "$numbers" | sed 's/^[^0-9]*//' )
или,
numbers="${numbers#${numbers%%[0-9]*}}"
${numbers[0]}
работало бы, если бы каждый символ был отдельным элементом в массиве numbers
(и если бы первый символ был цифрой ). Поскольку numbers
не является массивом, он эквивалентен просто $numbers
.
В Bash вы можете извлечь первый символ, используя расширение параметра :
${parameter:offset:length}
Пример:
$ var=901.32.02
$ first_char="${var:0:1}"
$ echo "${first_char}"
9
Если вы хотите обнаруживать только цифры (, а не другие типы символов ), вам следует использовать простое регулярное выражение.
[[ ${numbers} =~ ^([[:digit:]]) ]] && var=${BASH_REMATCH[1]}
В $var есть цифра или она пуста (даже не объявлена ).