Я хочу добавить два числа в Linux, число содержит ведущие нули

Если / является корнем, остальные следующие

Примечание Некоторые из них зависят от вашего дистрибутива

  • /bin:Основные двоичные файлы (программы или исполняемые файлы)
  • /boot:Ботинок файлы, то есть все необходимые элементы для GRUB (или другого )загрузчика
  • /cdrom(зависит от вашего дистрибутива ):Точка монтирования для привода CD/DVD
  • /dev:Файлы устройств, эти файлы представляют (они на самом деле являются реальными файлами )устройства физически (или виртуально )прикреплены
  • /etc:Файлы конфигурации
  • /home:домашние папки для пользователей
  • /lib:общие библиотеки для установленных двоичных файлов
  • /lost+found:Восстановлены файлы, которые ядро ​​(или некоторые двоичный файл )пытался спасти
  • /media:съемный носитель
  • /mnt:место установки (, но можно установить где угодно)
  • /opt:необязательные пакеты, которые вы хотите установить, которые не имеют смысла размещать в другом месте (, хотя это спорный момент)
  • /proc:Файлы ядра и процесса. Похоже на /dev.
  • /root:домашний каталог пользователя root
  • /run:файлы приложений сохраняют здесь свое состояние во время работы
  • /sbin:Больше двоичных файлов (в основном для sudoпользователя)
  • /selinux:при использовании SELinux (Centos, Redhat Enterprise и т. д. )содержит специальные файлы, используемые SELinux
  • /srv:каталог данных для служб, например, веб-сервер может использовать его для хранения файлов для «обслуживания»
  • /tmp:временные файлы
  • /usr:Двоичные файлы пользователя
  • /var:лог-файлы в /var/log и другие файлы данных.обычно относится к двоичным файлам /usr

Источник:https://www.howtogeek.com/117435/htg-explains-the-linux-directory-structure-explained/

(Немного перефразируя)

0
26.07.2019, 16:00
2 ответа

Может быть инструмент, который может сделать это изначально, но я смог сделать это с помощью следующей функции:

math_func () {
    local _n1=$1
    local _op=$2
    local _n2=$3
    local _p
    local _a
    if [ "${#_n1}" -gt "${#_n2}" ]; then
        _p=${#_n1}
    else
        _p=${#_n2}
    fi
    _a=$(echo "scale=0; $_n1 $_op $_n2" | bc -l)
    printf "%0${_p}d\n" "$_a"
}

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

Он проверит длину обоих входных чисел, и в зависимости от того, что больше, будет использоваться для установки нулевого размера заполнения вывода.

Вы называете это следующим образом:

$ math_func 000 + 1
001
$ math_func 000000500 \* 5
000002500
$ math_func 010 / 2
005
$ math_func 2 - 1
1
2
28.01.2020, 02:18

Ну, я предполагаю несколько вещей, но в вопросе не упоминались никакие условия!

Если вы заранее знаете, какие числа вы хотите добавить, вы можете использовать простое решение, подобное этому,

необходимо передать числа для добавления в качестве аргумента.

Конечно, не оптимально, но просто мысль!

#!/bin/bash
num1=$1
num2=$2
temp=$(( $num1 + $num2 ))
sum=$(printf "%03d" ${temp})
echo "Sum is: $sum"

ВыходSum is: 001

2
28.01.2020, 02:18

Теги

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