Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
236 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=foo@bar.com');
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 Reply

0 votes
by (71.8m points)

You can use this:

shell_exec('echo php mail.php test@test.com | at now + 1 minute');

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...