Использование небольшого Linux в качестве «сервера Ext4»

Создайте данные для вашего лупа while read:

#!/bin/sh

if [ "$#" -gt 0 ]; then
    # We have command line arguments.
    # Output them with newlines in-between.
    printf '%s\n' "$@"
else
    # No command line arguments.
    # Just pass stdin on.
    cat
fi |
while IFS= read -r string; do
    printf 'Got "%s"\n' "$string"
done

Обратите внимание, что ваш пример concatможет быть выполнен с заменой петли while readна tr '\n' ','или аналогичной.

Кроме того, тест -tничего не говорит о том, есть ли у вас аргументы командной строки или нет.


В качестве альтернативы, для обработки аргументов командной строки и стандартного ввода (в указанном порядке):

#!/bin/sh

{
    if [ "$#" -gt 0 ]; then
        # We have command line arguments.
        # Output them with newlines in-between.
        printf '%s\n' "$@"
    fi

    if [ ! -t 0 ]; then
        # Pass stdin on.
        cat
    fi
} |
while IFS= read -r string; do
    printf 'Got "%s"\n' "$string"
done

Или, используя сокращенную -нотацию, которая нравится некоторым людям:

#!/bin/sh

{
    [ "$#" -gt 0 ] && printf '%s\n' "$@"
    [ ! -t 0 ]     && cat
} |
while IFS= read -r string; do
    printf 'Got "%s"\n' "$string"
done
2
11.06.2020, 17:16
1 ответ

Установите live linux на свой VirtualBox, и этого должно быть достаточно, именно по этой причине они довольно маленькие. Их много на выбор,(вот небольшой список с описаниями). Лично я использую slax на usb, но есть и другие. Ничто не мешает вам сделать свою живую версию, которая была бы абсолютно минималистичной после того, как вы освоитесь с готовым решением.

1
28.04.2021, 23:21

Теги

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