大家!
从浏览器执行.sh脚本时遇到麻烦。 echo命令效果很好。但是,当我将值存储在变量中并将其作为参数传递给另一个脚本时,它将不起作用。 感谢任何帮助。
示例:
在这里,我将$ XX传递给另一个脚本
if [ -z "$QUERY_STRING" ]; then
exit 0
其他
XX=`echo "$QUERY_STRING" | sed -n 's/^.*val_x=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"`
if [ -z "$XX" ]; then
echo "X is empty"
else
echo "Processing..."
/sas/oljas_scripts/find_usage_of_tables.sh $XX
echo "Done"
fi
YY=`echo "$QUERY_STRING" | sed -n 's/^.*val_y=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"`
ZZ=`echo "$QUERY_STRING" | sed -n 's/^.*val_z=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"`
echo "val_x: " $XX
echo '<br>'
echo "val_y: " $YY
echo '<br>'
echo "val_z: " $ZZ
fi
答案 0 :(得分:0)
您尝试执行的文件/sas/oljas_scripts/find_usage_of_tables.sh
对于Web服务器而言不可执行。当前是:
-rwxrw-r-- 1 sas sas 1540 Nov 12 12:58 find_usage_of_tables.sh
这意味着sas
用户可以做所有事情,sas
组可以读写,但不能执行,其他所有人都可以读。值得注意的是,Web服务器需要能够读取和执行文件,但是这样做失败。
将文件设置为所有人都可读并可执行(不推荐):
chmod 755 /sas/oljas_scripts/find_usage_of_tables.sh
或将文件的组设置为Web服务器所在的组,并相应地设置文件的组权限:
chmod 754 /sas/oljas_scripts/find_usage_of_tables.sh
chgrp www-data /sas/oljas_scripts/find_usage_of_tables.sh
您可能需要sudo
。另外,Web服务器的组名可能不是www-data
-检查您的Web服务器配置,或者像this answer的建议那样从进程列表中读取它。