REGEX no funciona en el script Upstart

REGEX no funciona en el script Upstart

Para Upstart Script, la expresión regular siempre me da falso, sin embargo, funciona una vez que ejecuto el script manualmente.

/etc/init/sync_remote_users.conf:

start on filesystem and net-device-up IFACE!=lo
stop on runlevel [016]
respawn
##?
respawn limit 20 5
##?

script
    exec opt/local/our-sync-pkg-2.0/sync_users start
end script

Aquí está el código sync_users:

#!/bin/bash

for line in $(cat $DECRYPTED_PASSWORDS_FILE)
do
    if [[ !($line =~ ^[^-_][0-9a-zA-Z._-@]+\:[0-9a-zA-Z.\/$]{98}+$) ]]; then
        result=false;
   fi
done

Respuesta1

El código funcionaba bien. El problema era que el script advenedizo no ejecutaba scripts BASH de forma predeterminada, a menos que menciones que es un script bash. Así que cambio mi script de inicio a esto:

start on filesystem and net-device-up IFACE!=lo
stop on runlevel [016]

script
    exec bash -c '/opt/local/our-sync-pkg-2.0/sync_users start'
end script

información relacionada