I agree that "test -r $config" in /bin/sh is funky. It is true whether symbol config is defined or not. Your form of the if test does return true/false correctly. A bigger question is why your system gets there. Nothing ever sets or exports symbol 'config', thus this particular if test should always fail. Please update your system and report what 'sudo systemctl status vboxadd-service' outputs. On a Leap 42.2 virtual machine, I get finger@linux-bfk0:~> sudo systemctl status vboxadd-service root's password: ��� vboxadd-service.service - Start/Stop VirtualBox Guest Linux module Loaded: loaded (/etc/init.d/vboxadd-service; enabled; vendor preset: disabled) Active: active (exited) since Fri 2017-06-09 15:28:45 CDT; 30s ago Process: 862 ExecStart=/etc/init.d/vboxadd-service start (code=exited, status=0/SUCCESS) Main PID: 862 (code=exited, status=0/SUCCESS) Tasks: 8 (limit: 512) CGroup: /system.slice/vboxadd-service.service ������953 /usr/sbin/VBoxService --pidfile /var/run/vboxadd-service.sh Jun 09 15:28:45 linux-bfk0 systemd[1]: Started Start/Stop VirtualBox Guest Linux module. Jun 09 15:28:45 linux-bfk0 vboxadd-service[862]: vboxadd-service.sh: Starting VirtualBox Guest Addition service. Jun 09 15:28:45 linux-bfk0 vboxadd-service.sh[946]: VirtualBox Guest Addition service started. finger@linux-bfk0:~>