我有一个index.html
带有链接,必须从中删除所有 *.zip /mnt/sda1/down
。
当我点击链接时,它开始下载而不是执行 sh 脚本。
以下是index.html
和 sh 脚本:
#!/bin/sh
cd /mnt/sda1/down
rm *.zip
...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="">
<label><a href="delete.sh">DELETE ALL</a> </label>
</form>
</body>
</html>
答案1
您的链接是指向一个文件的链接,您的浏览器无法识别,因此它假定它是一个下载文件。
将该链接放入 中<form>
不会改变任何内容。<form>
元素的目的是在调用“action”属性中指定的 URL(通常使用<input type="submit">
表单中的元素)之前收集参数。
甚至不清楚是否涉及服务器。如果有,它是什么类型的?
答案2
HTML 没有这种能力。你需要使用 PHP,因为它是一种后端语言,可以与你的操作系统交互。
您可以做的是创建一个指向 php 文件的链接,当单击该链接时,它将导航到 PHP 文件,执行脚本,然后您可以告诉它将您重定向回主页或类似内容:
索引.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
<a href="delete.php">DELETE ALL</a>
</body>
</html>
删除.php
<?php
echo shell_exec('sh /path/to/delete.sh');
header('Location: /'); #this will take you back to the home page
?>
原始帖子:https://stackoverflow.com/questions/7397672/how-to-run-a-sh-file-from-php