Herramienta para formatear automáticamente el script de shell

Herramienta para formatear automáticamente el script de shell

Obtuve un código anterior que estaba en un documento pdf, dondequiera que intento publicarlo, la sangría es terrible, me gustaría darle el formato adecuado para la depuración. Aquí está mi código:

    #!/bin/bash 
# to measure average power consumed in 30sec with 1sec sampling interval 
duration
=
30 
interval
=
1 
RAILS
=(
"
VDD_IN /sys/bus/i2c/drivers/ina3221x/0-
0041/iio:device1/in_power0_input" 
  "VDD_SYS_GPU /sys/bus/i2c/drivers/ina3221x/0-
0040/iio:device0/in_power0_input" 
  "VDD_SYS_CPU /sys/bus/i2c/drivers/ina3221x/0-
0041/iio:device1/in_power1_input" 
  "VDD_SYS_SOC /sys/bus/i2c/drivers/ina3221x/0-
0040/iio:device0/in_power1_input" 
  "VDD_SYS_DDR /sys/bus/i2c/drivers/ina3221x/0-
0041/iio:device1/in_power2_input" 
 "VDD_4V0_WIFI /sys/bus/i2c/drivers/ina3221x/0-
0040/iio:device0/in_power2_input"
)
for
((
i 
=
 0
;
 i 
<
 ${#RAILS[@]}
;
 i++
));
do
Optimizin
g Jetson TX2 for Power and Performance
Jetson TX2
TDG
-08413-
001_v1.0  
|     28 
read
name
[
$i]
 node
[
$i]
 pwr_sum
[
$i]
 pwr_count
[
$i]
<<<$(echo 
"${RAILS[$i]} 0 0")
done
end_time
=$(($(date '+%s')
+
 duration
))
while
[
$(date '+%s')
-
le 
$end_time
];
do
for
((
i 
=
 0
;
 i 
<
 ${#RAILS[@]}
;
 i++
));
do
    pwr_sum
[
$i]=$((
${pwr_sum[$i]} 
+
$(cat ${node[$i]})))
&&
      pwr_count
[
$i]=$((
${pwr_count[$i]} 
+
 1
))
done
sleep
$interval
done
echo
"RAIL,POWER_AVG" 
for
((
i 
=
 0
;
 i 
<
 ${#RAILS[@]}
;
 i++
));
do
  pwr_avg
=$((
${pwr_sum[$i]} 
/
 ${pwr_count[$i]}
))
echo
"${name[$i]},$pwr_avg" 
done

Lo estoy haciendo manualmente pero me pregunto si se podría hacer automáticamente.

Respuesta1

¿Qué IDE estás usando? En VIM, gg=Gfunciona razonablemente bien. Si estás usando Atom, entonces mira esto:https://atom.io/packages/format-shell.

Respuesta2

formato-shellusos shfmt(https://github.com/mvdan/sh) bajo el capó. Esta herramienta podría conectarse a CI o como pre-commitgancho

información relacionada