• Как создать массив с ведущими нулями в Bash?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    for i in ${hr[@]}; do
    echo ${hr[i]}
    done

    Bash думает, что если число начинается с 0, то оно в восьмеричной системе счисления и числа 8 в ней нет. Что делать?

    Выбрать, что же именно у тебя лежит в массиве -- строчки или индексы. И если выбрал строчки, то не интерпретировать их тут: echo ${hr[i]} как индексы. А если выбрал индексы, то следовать правилам написания чисел.

    Я бы сделал так:
    #!/bin/bash
    
    hr=(00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23)
    
    for i in ${hr[@]}; do
    echo $i
    done
    Ответ написан
    Комментировать
  • Как создать массив с ведущими нулями в Bash?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    Не существует такого понятия, как "число с ведущим нулем".
    Ведущий ноль это не часть числа а просто форматирование вывода.
    Поэтому просто пользуйтесь printf с указанием формата, в вашем случае %02d (d - число, 02 - 2 цифры с ведущим нулем)
    #!/bin/bash
    
    hr=(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23)
    
    for i in ${hr[@]}; do
    printf "%02d\n" ${hr[i]}
    done
    Ответ написан
    Комментировать
  • Как спрятать IP локального сервера?

    @PapaStifflera
    Родился, вырос...
    Регистрируетесь на cloudflare.com, выбираете бесплатный тариф, настраиваете DNS и радуетесь жизни.
    И абсолютно безвозмездно, т.е. даром, получаете еще кучу плюшек.
    Ответ написан
    1 комментарий
  • Как спрятать IP локального сервера?

    Jump
    @Jump
    Системный администратор со стажем.
    Любой сервер в интернете с белым IP адресом к которому собственно и будут выполнятся запросы.
    А далее возможны варианты.
    • Банальный проброс портов. Вы знаете по каким портам обращаются к вашему серверу, и с помощью iptables пробрасываете их на свой домашний сервер.
    • Поднимаете прокси на этом сервере, который и будет отсылать запросы на ваш домашний сервер.


    Насколько я понимаю, здесь предлагают 1 IPv4 адрес и 20 случайных портов. Поскольку мне обязательно нужен 80 порт, то это решение не подходит?
    Не подходит. Если конечно вы не будете объяснять каждому пользователю чтобы они явно указывали нужный порт в своем браузере.

    За 4доллара в год вы не найдете такой сервер. Потому как аренда белого ip в среднем стоит 50-60рублей в месяц. А это 7-8долларов в год. Все что ниже по цене - будет без белого IP.
    А вот за 1-2тыс в год найти такой сервер не проблема.
    Ответ написан
    2 комментария
  • Почему не работает mkdir?

    @Karpion
    Первое, что нужно сделать в таком случае - добавить к команде в начало "echo":
    echo mkdir -p /home/user/radio/audio/$(date -d"4 days ago" +%e%B)

    и далее вдумчиво рассматривать, что там выдаётся. В данном случае - лезет лишний пробел.

    Также имеет смысл брать аргумент в кавычки:
    mkdir -p "/home/user/radio/audio/$(date -d"4 days ago" +%e%B)"

    Внутри двойных кавычек - спецсимволы $(...) (а также вариант для переменных окружения) резолвятся; но полученные таким путём пробелы не рассматриваются как разделители аргументов.
    В Вашем случае такое решение приведёт к пробелам в имени файла. Тут оно Вам вряд ли нужно - но учтите этот вариант.
    Ответ написан
    Комментировать
  • Почему не работает mkdir?

    unwrecker
    @unwrecker
    date -d"4 days ago" +%e%B

    даёт пробел в начале строки. В итоге создаются 2 директории: /home/user/radio/audio/ и ./7мая
    Ответ написан
    2 комментария