Вы можете использовать seq -w 1 218
или seq -f "% 03g" 1 218
для создания ваши числа.
Совершенно верно. Вам просто нужно немного обработать текст введенного ввода - если он еще не заканчивается на .dat
, вы просто добавляете .dat
.
#! /bin/bash
if [[ $# -lt 1 ]]; then
echo "Usage: $0 <datafile name>" >&2
exit 1
fi
DATFILE="$1"
if [[ "$DATFILE" != *".dat" ]]; then
DATFILE="${DATFILE}.dat"
fi
if [[ ! -r "$DATFILE" ]]; then
echo "Error: Data file '${DATFILE}' does not exist." >&2
exit 1
fi
echo "Using data file '${DATFILE}'..."
предполагается, что расширение всегда .dat
filedat=$(dirname -- "$1")/$(basename -- "$1" .dat).dat
, где
$ 1
- аргумент $ (dirname - "$ 1")
выберет имя каталога (dirname ../foo /bar/baz.dat)
=> ../ foo / bar
$ (basename - "$ 1" .dat)
отключит необязательный .dat $ (basename foo .dat .dat)
=> foo
, $ (базовое имя foo .dat)
=> foo