Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to pass arguments to linux at command

Tags:

linux

shell

php

I need to run a mail.php file later instead of keeping the user to wait for the validation email to be sent when they submit for register.php.

So I chose to use the at command to run mail.php ( invoked in register.php ) in command line 1 minute later:

But I can only send parameters to that php file when I was on the interactive mode of the at command.

at now + 1 minute
at> php mail.php {email}     # {email} is the argument I want to pass

Since I want this be automatic, so I need to use at run a shell script:

at -f mail.sh

But I could't find a proper way to pass the {email} argument,

I tried to set an environment varaible in Shell but also in vain:

In the register.php file, I wrote:

shell_exec('export [email protected]');
shell_exec('at -f mail.sh now + 1 minute');

In the mail.sh, I wrote:

#! /bin/bash
php mail.php $email
like image 879
longtengaa Avatar asked Nov 14 '13 14:11

longtengaa


1 Answers

You can use this:

shell_exec('echo php mail.php [email protected] | at now + 1 minute');
like image 133
Havenard Avatar answered Oct 01 '22 09:10

Havenard