Bash - добавляет нуль к единственной цифре в цикле с условием продолжения

Я сделал этот сценарий exif_script, И хотят заменить ep переменную к двузначной цифре, Например, 01 instread 1.

#!/bin/bash
x=0
ep=1
while [ $x -le 11 ]
do
  echo "Welcome $x times"
  date --date="$x week" +"%Y:%m:%d"
  exiftool -exififd:dateTimeOriginal="$(date --date="$x week" +"%Y:%m:%d") 00" $1$ep*
  x=$(( $x + 1 ))
  ep=$(( $ep + 1 ))
done
2
задан 18 July 2017 в 15:10

2 ответа

Используя Ваш сценарий, будет работать следующее.

#!/bin/bash
x=0
ep=1
while [ $x -le 11 ]
do
  ep_padded=$(printf '%02d' $ep)
  echo "Welcome $x times"
  date --date="$x week" +"%Y:%m:%d"
  exiftool -exififd:dateTimeOriginal="$(date --date="$x week" +"%Y:%m:%d") 00" $1$ep_padded*
  x=$(( $x + 1 ))
  ep=$(( $ep + 1 ))
done

Можно использовать следующую форму для постепенного увеличения переменных также

x=$((++x))
ep=$((++ep))
2
ответ дан 2 December 2019 в 02:46

установите свою переменную как ниже, это добавит дополнительный нуль, можно добавить больше нулей в случае ожиданий.

ep="$(printf '%02d' $((++ep)) )"
1
ответ дан 2 December 2019 в 02:46

Другие вопросы по тегам:

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