Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
249 views
in Technique[技术] by (71.8m points)

php - how to pass arguments to linux at command

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
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

You can use this:

shell_exec('echo php mail.php [email protected] | at now + 1 minute');

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...