Skip to content

Añadir comillas dobles a las variables para prevenir globbing y dividir palabras #1

@r-gongar

Description

@r-gongar

Sería añadir comillas a las variables:
$variable --> "$variable"
Esta es la explicación de esto:
https://github.com/koalaman/shellcheck/wiki/SC2086
Adjunto archivo corregido

PROG="$(basename $0)"

PROG="$(basename "$0")"


"$options"


"$MYCNF"

DATETIME=`getDateTime`

"$LOG_FILE"

echo "$DATETIME;$SSH_CLIENT;$1" >> $LOG_FILE

echo "$DATETIME;$SSH_CLIENT;$1" >> "$LOG_FILE"

echo "$DATETIME;$SSH_CLIENT;ERROR: $1" >> $LOG_FILE

echo "$DATETIME;$SSH_CLIENT;ERROR: $1" >> "$LOG_FILE"

cat << EOT > $MYCNF

cat << EOT > "$MYCNF"

OLDVERSION="$(echo ${file%.*} | cut -f3 -d-)"

OLDVERSION="$(echo "${file%.*}" | cut -f3 -d-)"

if [ -n "$FILES" -o "$OLDVERSION" = "$NEWVERSION" ] && [ -r $file ]; then

if [ -n "$FILES" -o "$OLDVERSION" = "$NEWVERSION" ] && [ -r "$file" ]; then

mysql --defaults-extra-file=$MYCNF -e "CREATE DATABASE $AUXCATALOG"

mysql --defaults-extra-file="$MYCNF" -e "CREATE DATABASE $AUXCATALOG"

mysql --defaults-extra-file=$MYCNF -D "$AUXCATALOG" < $MYSQLFILE &>/dev/null

mysql --defaults-extra-file="$MYCNF" -D "$AUXCATALOG" < $MYSQLFILE &>/dev/null

importSqlFile $DBDIR/$file

importSqlFile $DBDIR/"$file"

importSqlFile $DBDIR/$file

mysqldump --defaults-extra-file="$MYCNF" --opt $AUXCATALOG > $MYSQLFILE

mysql --defaults-extra-file=$MYCNF -e "DROP DATABASE $AUXCATALOG"

mysql --defaults-extra-file="$MYCNF" -e "DROP DATABASE $AUXCATALOG"

if [ ! -r $sqlfile ]; then

if [ ! -r "$sqlfile" ]; then

mysql --defaults-extra-file=$MYCNF --default-character-set=utf8 -D "$AUXCATALOG" < $sqlfile

mysql --defaults-extra-file="$MYCNF" --default-character-set=utf8 -D "$AUXCATALOG" < "$sqlfile"

echo $CONFIG | jq -r '.[] as $f | $f.comment + ": " + (if $f.detected then "OK" else "FAIL" end)' | column -ts:

echo "$CONFIG" | jq -r '.[] as $f | $f.comment + ": " + (if $f.detected then "OK" else "FAIL" end)' | column -ts:

if ! [ -r $BACKUPFILE ]; then

if ! [ -r "$BACKUPFILE" ]; then

echo "$PROG: ERROR: Sin acceso al fichero de backup." | tee -a $FILESAL

echo "$PROG: ERROR: Sin acceso al fichero de backup." | tee -a "$FILESAL"

echo "$PROG: ERROR: Sin acceso a la configuración de OpenGnsys." | tee -a $FILESAL

echo "$PROG: ERROR: Sin acceso a la configuración de OpenGnsys." | tee -a "$FILESAL"

checkArchive $BACKUPFILE

checkArchive "$BACKUPFILE"

tar -xvzf $BACKUPFILE --directory /tmp $TARPARAMS &>/dev/null

tar -xvzf "$BACKUPFILE" --directory /tmp $TARPARAMS &>/dev/null

if [ $OLDVERSION != $NEWVERSION ] ; then

if [ "$OLDVERSION" != "$NEWVERSION" ] ; then

if [ ! -r $MYCNF ]; then

if [ ! -r "$MYCNF" ]; then

chmod 600 $MYCNF

chmod 600 "$MYCNF"

cat << EOT > $MYCNF

cat << EOT > "$MYCNF"
mysqldump --defaults-extra-file=$MYCNF --opt $CATALOG > $MYSQLBCK

mysqldump --defaults-extra-file="$MYCNF" --opt $CATALOG > "$MYSQLBCK"

chmod 400 $MYSQLBCK

chmod 400 "$MYSQLBCK"

mysql --defaults-extra-file=$MYCNF -D "$CATALOG" < $MYSQLFILE &>/dev/null

mysql --defaults-extra-file="$MYCNF" -D "$CATALOG" < $MYSQLFILE &>/dev/null

mv /etc/default/opengnsys /etc/default/opengnsys-$DATE

mv /etc/default/opengnsys /etc/default/opengnsys-"$DATE"

mv $DHCPCFGDIR/dhcpd.conf $DHCPCFGDIR/dhcpd.conf-$DATE

mv $DHCPCFGDIR/dhcpd.conf $DHCPCFGDIR/dhcpd.conf-"$DATE"

sed ${BEFOREHOST}q $DHCPCFGDIR/dhcpd.conf-LAST > $DHCPCFGDIR/dhcpd.conf

sed "${BEFOREHOST}"q $DHCPCFGDIR/dhcpd.conf-LAST > $DHCPCFGDIR/dhcpd.conf

mkdir -p $OPENGNSYS/tftpboot/$BOOTLOADER-$DATE

mkdir -p $OPENGNSYS/tftpboot/$BOOTLOADER-"$DATE"

mv $OPENGNSYS/tftpboot/$BOOTLOADER/{01-*,templates,examples} $OPENGNSYS/tftpboot/$BOOTLOADER-$DATE 2>/dev/null

mv $OPENGNSYS/tftpboot/$BOOTLOADER/{01-*,templates,examples} $OPENGNSYS/tftpboot/$BOOTLOADER-"$DATE" 2>/dev/null

mysql --defaults-extra-file=$MYCNF -D "$CATALOG" -e "update ordenadores set arranque='10' where arranque='01';" &>/dev/null

mysql --defaults-extra-file="$MYCNF" -D "$CATALOG" -e "update ordenadores set arranque='10' where arranque='01';" &>/dev/null

mv $OPENGNSYS/client/etc/engine.cfg $OPENGNSYS/client/etc/engine.cfg-$DATE

mv $OPENGNSYS/client/etc/engine.cfg $OPENGNSYS/client/etc/engine.cfg-"$DATE"

mv $OPENGNSYS/www/menus $OPENGNSYS/www/menus-$DATE

mv $OPENGNSYS/www/menus $OPENGNSYS/www/menus-"$DATE"

mkdir -p $OPENGNSYS/client/scripts/Custom-$DATE

mkdir -p $OPENGNSYS/client/scripts/Custom-"$DATE"

mv $OPENGNSYS/client/scripts/*Custom $OPENGNSYS/client/scripts/Custom-$DATE

mv $OPENGNSYS/client/scripts/*Custom $OPENGNSYS/client/scripts/Custom-"$DATE"

mv $OPENGNSYS/etc/ogliveinfo.json $OPENGNSYS/etc/ogliveinfo.json-$DATE

mv $OPENGNSYS/etc/ogliveinfo.json $OPENGNSYS/etc/ogliveinfo.json-"$DATE"

Un saludo, simplemente le he pasado el shellcheck

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions