incron on Ubuntu - bash script called by incrontab - dollar parentheses $(command) command substitutions fail
up vote
0
down vote
favorite
I have a bash script that runs fine from the command line, but when it's called from incrontab the substitutions fail. The script runs, but the commands in $(...) fail :(
My incrontab -e :
/home/kelly/summer IN_CREATE /bin/bash /usr/share/summerwear/notify.sh
in my script (notify.sh) :
#!/bin/bash
swimwear=$(grep -i "swimsuit" "/home/kelly/summer/inquiry.txt")
echo "The swimwear request is $swimwear" > /home/kelly/log.txt
The contents of my log file then look like this:
The swimwear request is
..
An example of the incoming inquiry.txt file:
request 1 - swimsuit - blue - daytime - informal
request 2 - gown - black - nighttime - formal
..
Setting the PATH and SHELL from incron.conf doesn't seem to make a difference.
I have also tried variations of stuff like this:
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
SHELL=/bin/bash
swimwear=$(grep -i "swimsuit" "/home/kelly/summer/inquiry.txt")
echo "swimwear equals $swimwear" > /home/kelly/log.txt
And every combination I can think of:
swimwear=$(grep -i "swimsuit" "/home/kelly/summer/inquiry.txt")
swimwear=$("grep -i swimsuit /home/kelly/summer/inquiry.txt")
swimwear=$(grep -i 'swimsuit' "/home/kelly/summer/inquiry.txt")
swimwear=$(grep -i swimsuit "/home/kelly/summer/inquiry.txt")
swimwear=$(grep -i $("swimsuit" "/home/kelly/summer/inquiry.txt"))
swimwear=$( $(grep -i "swimsuit" "/home/kelly/summer/inquiry.txt"))
..and endless combinations of single-quotes, double quotes, no-quotes, etc.
...as well as specifying the grep PATH:
swimwear=$(/bin/grep -i "swimsuit" "/home/kelly/summer/inquiry.txt")
(etc.)...
There are several posts dealing with setting and/or specifying the PATH and SHELL for cron jobs, crontab, etc., but I'm not seeing a whole lot of information out there regarding "incrontab" specifically.
Any help is greatly appreciated!
bash ubuntu incron
add a comment |
up vote
0
down vote
favorite
I have a bash script that runs fine from the command line, but when it's called from incrontab the substitutions fail. The script runs, but the commands in $(...) fail :(
My incrontab -e :
/home/kelly/summer IN_CREATE /bin/bash /usr/share/summerwear/notify.sh
in my script (notify.sh) :
#!/bin/bash
swimwear=$(grep -i "swimsuit" "/home/kelly/summer/inquiry.txt")
echo "The swimwear request is $swimwear" > /home/kelly/log.txt
The contents of my log file then look like this:
The swimwear request is
..
An example of the incoming inquiry.txt file:
request 1 - swimsuit - blue - daytime - informal
request 2 - gown - black - nighttime - formal
..
Setting the PATH and SHELL from incron.conf doesn't seem to make a difference.
I have also tried variations of stuff like this:
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
SHELL=/bin/bash
swimwear=$(grep -i "swimsuit" "/home/kelly/summer/inquiry.txt")
echo "swimwear equals $swimwear" > /home/kelly/log.txt
And every combination I can think of:
swimwear=$(grep -i "swimsuit" "/home/kelly/summer/inquiry.txt")
swimwear=$("grep -i swimsuit /home/kelly/summer/inquiry.txt")
swimwear=$(grep -i 'swimsuit' "/home/kelly/summer/inquiry.txt")
swimwear=$(grep -i swimsuit "/home/kelly/summer/inquiry.txt")
swimwear=$(grep -i $("swimsuit" "/home/kelly/summer/inquiry.txt"))
swimwear=$( $(grep -i "swimsuit" "/home/kelly/summer/inquiry.txt"))
..and endless combinations of single-quotes, double quotes, no-quotes, etc.
...as well as specifying the grep PATH:
swimwear=$(/bin/grep -i "swimsuit" "/home/kelly/summer/inquiry.txt")
(etc.)...
There are several posts dealing with setting and/or specifying the PATH and SHELL for cron jobs, crontab, etc., but I'm not seeing a whole lot of information out there regarding "incrontab" specifically.
Any help is greatly appreciated!
bash ubuntu incron
1
Suggestion: try logging errors in the script by addingexec 1>/home/kelly/log-output.txt 2>/home/kelly/log-errors.txt
at the beginning of the script.
– Gordon Davisson
Nov 11 at 7:30
Wow, thanks @GordonDavisson for this answer! It eventually helped me solve the problem, which was this: My script began running as soon as the the file was created, but before the data actually appeared. $(grep..) was working all along, but it took a couple of milliseconds for any data to be uploaded. The solution: in my "incrontab -e", I changed: IN_CREATE to: IN_CLOSE_WRITE Thanks again for your reply! Marking as solved.
– PonyGirl2ElectricBugaloo
Nov 12 at 4:04
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I have a bash script that runs fine from the command line, but when it's called from incrontab the substitutions fail. The script runs, but the commands in $(...) fail :(
My incrontab -e :
/home/kelly/summer IN_CREATE /bin/bash /usr/share/summerwear/notify.sh
in my script (notify.sh) :
#!/bin/bash
swimwear=$(grep -i "swimsuit" "/home/kelly/summer/inquiry.txt")
echo "The swimwear request is $swimwear" > /home/kelly/log.txt
The contents of my log file then look like this:
The swimwear request is
..
An example of the incoming inquiry.txt file:
request 1 - swimsuit - blue - daytime - informal
request 2 - gown - black - nighttime - formal
..
Setting the PATH and SHELL from incron.conf doesn't seem to make a difference.
I have also tried variations of stuff like this:
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
SHELL=/bin/bash
swimwear=$(grep -i "swimsuit" "/home/kelly/summer/inquiry.txt")
echo "swimwear equals $swimwear" > /home/kelly/log.txt
And every combination I can think of:
swimwear=$(grep -i "swimsuit" "/home/kelly/summer/inquiry.txt")
swimwear=$("grep -i swimsuit /home/kelly/summer/inquiry.txt")
swimwear=$(grep -i 'swimsuit' "/home/kelly/summer/inquiry.txt")
swimwear=$(grep -i swimsuit "/home/kelly/summer/inquiry.txt")
swimwear=$(grep -i $("swimsuit" "/home/kelly/summer/inquiry.txt"))
swimwear=$( $(grep -i "swimsuit" "/home/kelly/summer/inquiry.txt"))
..and endless combinations of single-quotes, double quotes, no-quotes, etc.
...as well as specifying the grep PATH:
swimwear=$(/bin/grep -i "swimsuit" "/home/kelly/summer/inquiry.txt")
(etc.)...
There are several posts dealing with setting and/or specifying the PATH and SHELL for cron jobs, crontab, etc., but I'm not seeing a whole lot of information out there regarding "incrontab" specifically.
Any help is greatly appreciated!
bash ubuntu incron
I have a bash script that runs fine from the command line, but when it's called from incrontab the substitutions fail. The script runs, but the commands in $(...) fail :(
My incrontab -e :
/home/kelly/summer IN_CREATE /bin/bash /usr/share/summerwear/notify.sh
in my script (notify.sh) :
#!/bin/bash
swimwear=$(grep -i "swimsuit" "/home/kelly/summer/inquiry.txt")
echo "The swimwear request is $swimwear" > /home/kelly/log.txt
The contents of my log file then look like this:
The swimwear request is
..
An example of the incoming inquiry.txt file:
request 1 - swimsuit - blue - daytime - informal
request 2 - gown - black - nighttime - formal
..
Setting the PATH and SHELL from incron.conf doesn't seem to make a difference.
I have also tried variations of stuff like this:
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
SHELL=/bin/bash
swimwear=$(grep -i "swimsuit" "/home/kelly/summer/inquiry.txt")
echo "swimwear equals $swimwear" > /home/kelly/log.txt
And every combination I can think of:
swimwear=$(grep -i "swimsuit" "/home/kelly/summer/inquiry.txt")
swimwear=$("grep -i swimsuit /home/kelly/summer/inquiry.txt")
swimwear=$(grep -i 'swimsuit' "/home/kelly/summer/inquiry.txt")
swimwear=$(grep -i swimsuit "/home/kelly/summer/inquiry.txt")
swimwear=$(grep -i $("swimsuit" "/home/kelly/summer/inquiry.txt"))
swimwear=$( $(grep -i "swimsuit" "/home/kelly/summer/inquiry.txt"))
..and endless combinations of single-quotes, double quotes, no-quotes, etc.
...as well as specifying the grep PATH:
swimwear=$(/bin/grep -i "swimsuit" "/home/kelly/summer/inquiry.txt")
(etc.)...
There are several posts dealing with setting and/or specifying the PATH and SHELL for cron jobs, crontab, etc., but I'm not seeing a whole lot of information out there regarding "incrontab" specifically.
Any help is greatly appreciated!
bash ubuntu incron
bash ubuntu incron
asked Nov 11 at 4:22
PonyGirl2ElectricBugaloo
1
1
1
Suggestion: try logging errors in the script by addingexec 1>/home/kelly/log-output.txt 2>/home/kelly/log-errors.txt
at the beginning of the script.
– Gordon Davisson
Nov 11 at 7:30
Wow, thanks @GordonDavisson for this answer! It eventually helped me solve the problem, which was this: My script began running as soon as the the file was created, but before the data actually appeared. $(grep..) was working all along, but it took a couple of milliseconds for any data to be uploaded. The solution: in my "incrontab -e", I changed: IN_CREATE to: IN_CLOSE_WRITE Thanks again for your reply! Marking as solved.
– PonyGirl2ElectricBugaloo
Nov 12 at 4:04
add a comment |
1
Suggestion: try logging errors in the script by addingexec 1>/home/kelly/log-output.txt 2>/home/kelly/log-errors.txt
at the beginning of the script.
– Gordon Davisson
Nov 11 at 7:30
Wow, thanks @GordonDavisson for this answer! It eventually helped me solve the problem, which was this: My script began running as soon as the the file was created, but before the data actually appeared. $(grep..) was working all along, but it took a couple of milliseconds for any data to be uploaded. The solution: in my "incrontab -e", I changed: IN_CREATE to: IN_CLOSE_WRITE Thanks again for your reply! Marking as solved.
– PonyGirl2ElectricBugaloo
Nov 12 at 4:04
1
1
Suggestion: try logging errors in the script by adding
exec 1>/home/kelly/log-output.txt 2>/home/kelly/log-errors.txt
at the beginning of the script.– Gordon Davisson
Nov 11 at 7:30
Suggestion: try logging errors in the script by adding
exec 1>/home/kelly/log-output.txt 2>/home/kelly/log-errors.txt
at the beginning of the script.– Gordon Davisson
Nov 11 at 7:30
Wow, thanks @GordonDavisson for this answer! It eventually helped me solve the problem, which was this: My script began running as soon as the the file was created, but before the data actually appeared. $(grep..) was working all along, but it took a couple of milliseconds for any data to be uploaded. The solution: in my "incrontab -e", I changed: IN_CREATE to: IN_CLOSE_WRITE Thanks again for your reply! Marking as solved.
– PonyGirl2ElectricBugaloo
Nov 12 at 4:04
Wow, thanks @GordonDavisson for this answer! It eventually helped me solve the problem, which was this: My script began running as soon as the the file was created, but before the data actually appeared. $(grep..) was working all along, but it took a couple of milliseconds for any data to be uploaded. The solution: in my "incrontab -e", I changed: IN_CREATE to: IN_CLOSE_WRITE Thanks again for your reply! Marking as solved.
– PonyGirl2ElectricBugaloo
Nov 12 at 4:04
add a comment |
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53245811%2fincron-on-ubuntu-bash-script-called-by-incrontab-dollar-parentheses-comman%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
Suggestion: try logging errors in the script by adding
exec 1>/home/kelly/log-output.txt 2>/home/kelly/log-errors.txt
at the beginning of the script.– Gordon Davisson
Nov 11 at 7:30
Wow, thanks @GordonDavisson for this answer! It eventually helped me solve the problem, which was this: My script began running as soon as the the file was created, but before the data actually appeared. $(grep..) was working all along, but it took a couple of milliseconds for any data to be uploaded. The solution: in my "incrontab -e", I changed: IN_CREATE to: IN_CLOSE_WRITE Thanks again for your reply! Marking as solved.
– PonyGirl2ElectricBugaloo
Nov 12 at 4:04