2

我在脚本方面完全是菜鸟,并试图找出我的代码中的问题所在。我有一个包含客户详细信息的文本文件,文件的第一行是用户名,第二行是真实姓名。我需要将此详细信息传递给 php。首先,我需要在目录中找到最旧的文件。我创建了返回客户用户名的 bash 脚本:

oldest=`ls -tr1 temp/data/*.details|head -1`
head -n1 $oldest

这会找到 odest 文件 (temp/data/xxx.details) 并返回用户名,比如说 xxx。

现在,到 php:

$username = shell_exec('./oldest_order.sh');
$name = shell_exec('head -2 temp/data/'.$username.'.details | sed -n 2p');

我可以在我的 php 中获取用户名,第一行:它是 xxx,但第二行不起作用,但是,如果我更改 '.$username.' 到 xxx,它可以工作,所以问题出在这个变量的某个地方。

请指教。

4

1 回答 1

0

也许在结尾或开头有换行符或空格。

您可以通过执行var_dump($username);. 这将为您提供字符串的实际长度,以便您可以将其与您认为应该具有的长度进行比较。

如果开头或结尾是空格,则可以使用:

$name = shell_exec('head -2 temp/data/'.trim($username).'.details | sed -n 2p');
于 2013-03-08T21:34:35.580 回答