Bash - adiciona zero a um dígito no loop

2

Eu fiz esse script exif_script E quer mudar a variável ep para dois dígitos Por exemplo, 01 instrum de 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" $ep*
  x=$(( $x + 1 ))
  ep=$(( $ep + 1 ))
done
    
por Solaris 18.07.2017 / 08:49

2 respostas

2

Usando seu script, o seguinte funcionará.

#!/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" $ep_padded*
  x=$(( $x + 1 ))
  ep=$(( $ep + 1 ))
done

Você pode usar o seguinte formulário para incrementar suas variáveis também

x=$((++x))
ep=$((++ep))
    
por Arronical 18.07.2017 / 13:39
1

defina sua variável como abaixo, isso adicionará um zero de preenchimento, você pode adicionar mais zeros no caso de suas expectativas.

ep="$(printf '%02d' $((++ep)) )"
    
por αғsнιη 18.07.2017 / 09:28