echo "TestScript1 Arguments:"
echo "$1"
echo "$2"
echo "$#"
./testscript2 $1 $2
Run Code Online (Sandbox Code Playgroud)
TestScript2看起来像:
echo "TestScript2 Arguments received from TestScript1:"
echo "$1"
echo "$2"
echo "$#"
Run Code Online (Sandbox Code Playgroud)
当我以下列方式执行testscript1时:
./testscript1 "Firstname Lastname" testmail@domain.com
Run Code Online (Sandbox Code Playgroud)
期望的输出应该是:
TestScript1 Arguments:
Firstname Lastname
testmail@domain.com
2
TestScript2 Arguments received from TestScript1:
Firstname Lastname
testmail@domain.com
2
Run Code Online (Sandbox Code Playgroud)
但实际输出是:
TestScript1 Arguments:
Firstname Lastname
testmail@domain.com
2
TestScript2 Arguments received from TestScript1:
Firstname
Lastname
3
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?我想获得所需的输出而不是实际的输出.
我想从PHP脚本执行系统中存在的Bash脚本.我在系统上有两个脚本.其中一个是名为client.phppresent at 的PHP脚本/var/www/html,另一个是名为testscriptpresent at 的Bash脚本/home/testuser.
我的client.php脚本看起来像
<?php
$message=shell_exec("/home/testuser/testscript 2>&1");
print_r($message);
?>
Run Code Online (Sandbox Code Playgroud)
我的测试文件看起来像
#!/bin/bash
echo "Testscript run succesful"
Run Code Online (Sandbox Code Playgroud)
当我在终端上执行以下操作时
php client.php
Run Code Online (Sandbox Code Playgroud)
我在终端上得到以下输出
Testscript run successful
Run Code Online (Sandbox Code Playgroud)
但是当我打开页面时
http://serverdomain/client.php
Run Code Online (Sandbox Code Playgroud)
我得到以下输出
sh: /home/testuser/testscript: Permission denied
Run Code Online (Sandbox Code Playgroud)
即使我做了chmod + x testscript后,我也收到了这个错误.
如何从浏览器中使用它?请帮忙.
我正在尝试使用.htaccess文件以下列方式设置apache环境变量:
SetEnv SERVER_KEY "qwerty"
Run Code Online (Sandbox Code Playgroud)
之后我优雅地重启我的apache web服务器:
apachectl graceful
Run Code Online (Sandbox Code Playgroud)
然后我在/ var/www/html中创建一个名为version.php的文件
<?php phpinfo() ?>
Run Code Online (Sandbox Code Playgroud)
并转到MYIPADDRESS/version.php进行检查,但我发现环境变量尚未设置.
以下是详细信息:操作系统:RHEL6 PHP版本:5.3.3 Apache版本:2.2.15(Red Hat)
我该怎么办?
更新: 我通过在服务器配置文件中将AllowOverride None更改为AllowOverride All解决了我的问题!
我创建了一个名为bash的脚本test.sh,它接受一个命令行参数: -
$ cat test.sh
#!/bin/bash
open -a Terminal $1
Run Code Online (Sandbox Code Playgroud)
当我以下列方式执行此脚本时: -
$ ./test.sh /Users/myusername/Desktop/folderwithoutspaces/
Run Code Online (Sandbox Code Playgroud)
它完美执行并在给定文件夹中启动一个新的终端窗口.
但是当我以下列方式执行此脚本时: -
$ ./test.sh /Users/myusername/Desktop/folder\ withspaces/
Run Code Online (Sandbox Code Playgroud)
它无法打开新的终端窗口并显示以下错误消息: -
The files /Users/myusername/Desktop/folder and /Users/myusername/Desktop/withspaces do not exist.
Run Code Online (Sandbox Code Playgroud)
我尝试了所有这些可能的方法,但在任何方面都没有成功: -
$ ./test.sh "/Users/myusername/Desktop/folder\ withspaces/"
$ ./test.sh "/Users/myusername/Desktop/folder withspaces/"
$ ./test.sh '/Users/myusername/Desktop/folder\ withspaces/'
$ ./test.sh '/Users/myusername/Desktop/folder withspaces/'
$ ./test.sh /Users/myusername/Desktop/folder\ withspaces/
Run Code Online (Sandbox Code Playgroud)