LINUX.ORG.RU

История изменений

Исправление Zmicier, (текущая версия) :

Нормальная обвязка для цикла по файлам может выглядеть как-то так:

#!/bin/bash

# config
NAME="Your Name"

# подчеркиваю еще раз: это принципиально неверно, когда определитесь с
#  именем, задайте $SCRIPTNAME явно
SCRIPTNAME="${0##*/}"
USAGE=$"Usage: $SCRIPTNAME <file>..."

err() {
    printf >&2 "$SCRIPTNAME: $*\n"
    continue 2>&-
    exit 1
}

(( $# < 1 )) || err "$USAGE"

echo >&2 "$NAME"
date >&2

for file; do
    [[ -f "$file" ]] || err $"‘$file’: No such file or directory"

    # обработка каждого файла
done

А чтобы написать нормально то, что вы попытались сделать при помощи кучи временных файлов, я уже сказал, что я от вас жду.

Исправление Zmicier, :

Нормальная обвязка для цикла по файлам может выглядеть как-то так:

#!/bin/bash

# config
NAME="Your Name"

# подчеркиваю еще раз: это принципиально неверно, когда определитесь с
#  именем, задайте $SCRIPTNAME явно
SCRIPTNAME="${0##*/}"
USAGE=$"Usage: $SCRIPTNAME <file>"

err() {
    printf >&2 "$SCRIPTNAME: $*\n"
    continue 2>&-
    exit 1
}

(( $# < 1 )) || err "$USAGE"

echo >&2 "$NAME"
date >&2

for file; do
    [[ -f "$file" ]] || err $"‘$file’: No such file or directory"

    # обработка каждого файла
done

А чтобы написать нормально то, что вы попытались сделать при помощи кучи временных файлов, я уже сказал, что я от вас жду.

Исходная версия Zmicier, :

Нормальная обвязка для цикла по файлам может выглядеть как-то так:

#!/bin/bash

# config
NAME="Your Name"

SCRIPTNAME="${0##*/}"
USAGE=$"Usage: $SCRIPTNAME <file>"

err() {
    printf >&2 "$SCRIPTNAME: $*\n"
    continue 2>&-
    exit 1
}

(( $# < 1 )) || err "$USAGE"

echo >&2 "$NAME"
date >&2

for file; do
    [[ -f "$file" ]] || err $"‘$file’: No such file or directory"

    # обработка каждого файла
done

А чтобы написать нормально то, что вы попытались сделать при помощи кучи временных файлов, я уже сказал, что я от вас жду.