Michael B. Eichorn wrote on 11/21/2015 21:42:> On Sat, 2015-11-21 at 13:31 +0100, Miroslav Lachman wrote: >> I noticed some weird behavior of "su" command in shell scripts >> running >> from cron after upgrade from FreeBSD 8.4 to 10.2. >> >> If I have this in script >> >> su -m www -c 'ls -l' >> >> then I get "TERM: Undefined variable" on the stderr if this script is >> run from cron. >> It works fine on FreeBSD 8.4 >> >> Is it intentional behavior? >> >> Miroslav Lachman > > I cannot reproduce your problem. I used the following script: > > #!/bin/sh > > echo "BEGIN TEST" > echo $TERM > > su -m www -c 'ls -l' > > echo $TERM > echo "END TEST" > > crontab is: > * * * * * /root/test.sh > > and the result is: > > BEGIN TEST > > total 520765 > -rw-r--r-- 1 root wheel 724002816 Aug 12 11:45 FreeBSD-10.2- > RELEASE-amd64-disc1.iso > -rwxr-xr-x 1 root wheel 90 Nov 21 15:33 test.sh > > END TEST > > # freebsd-version > 10.2-RELEASE-p7 >It's a strange. I tried it on another machine which was installed as 10.1 and upgraded to 10.2-p5 - and I got Undefined variable again: BEGIN TEST TERM: Undefined variable. total 8984 drwxr-xr-x 2 root wheel 1536 Aug 12 13:48 bin -rw------- 1 root wheel 9134080 Nov 22 00:06 dns-terror.core -rw-r--r-- 1 root wheel 836 Nov 5 10:39 extensions.ini drwxr-xr-x 3 root wheel 512 Jul 29 17:49 settings drwxr-xr-x 8 root wheel 512 Aug 9 04:59 settings_atago drwxr-xr-x 2 root wheel 512 Aug 9 03:12 skel_devel -rwxr--r-- 1 root wheel 90 Nov 22 11:52 term_test.sh END TEST Miroslav Lachman
Miroslav Lachman wrote on 11/22/2015 12:03:> Michael B. Eichorn wrote on 11/21/2015 21:42: >> On Sat, 2015-11-21 at 13:31 +0100, Miroslav Lachman wrote: >>> I noticed some weird behavior of "su" command in shell scripts >>> running >>> from cron after upgrade from FreeBSD 8.4 to 10.2. >>> >>> If I have this in script >>> >>> su -m www -c 'ls -l' >>> >>> then I get "TERM: Undefined variable" on the stderr if this script is >>> run from cron. >>> It works fine on FreeBSD 8.4 >>> >>> Is it intentional behavior? >>> >>> Miroslav Lachman >> >> I cannot reproduce your problem. I used the following script: >> >> #!/bin/sh >> >> echo "BEGIN TEST" >> echo $TERM >> >> su -m www -c 'ls -l' >> >> echo $TERM >> echo "END TEST" >> >> crontab is: >> * * * * * /root/test.sh >> >> and the result is: >> >> BEGIN TEST >> >> total 520765 >> -rw-r--r-- 1 root wheel 724002816 Aug 12 11:45 FreeBSD-10.2- >> RELEASE-amd64-disc1.iso >> -rwxr-xr-x 1 root wheel 90 Nov 21 15:33 test.sh >> >> END TEST >> >> # freebsd-version >> 10.2-RELEASE-p7 >> > > It's a strange. I tried it on another machine which was installed as > 10.1 and upgraded to 10.2-p5 - and I got Undefined variable again: > > BEGIN TEST > > TERM: Undefined variable. > total 8984 > drwxr-xr-x 2 root wheel 1536 Aug 12 13:48 bin > -rw------- 1 root wheel 9134080 Nov 22 00:06 dns-terror.core > -rw-r--r-- 1 root wheel 836 Nov 5 10:39 extensions.ini > drwxr-xr-x 3 root wheel 512 Jul 29 17:49 settings > drwxr-xr-x 8 root wheel 512 Aug 9 04:59 settings_atago > drwxr-xr-x 2 root wheel 512 Aug 9 03:12 skel_devel > -rwxr--r-- 1 root wheel 90 Nov 22 11:52 term_test.sh > > END TEST > > Miroslav LachmanThe only workaround I found is adding export TERM="" at the top of the script.