Link in HTML kann .sh-Datei nicht ausführen

Link in HTML kann .sh-Datei nicht ausführen

Ich habe eine index.htmlmit einem Link, der alle *.zips entfernen muss /mnt/sda1/down.

Wenn ich auf den Link klicke, beginnt der Download, nicht die Ausführung des SH-Skripts.

Hier ist das index.htmlund das sh-Skript:

#!/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>

Antwort1

Ihr Link führt zu einer Datei, die Ihr Browser nicht erkennt. Deshalb geht er davon aus, dass es sich um einen Download handelt.

Das Einfügen dieses Links in ein <form>ändert nichts. Der Zweck des <form>Elements besteht darin, Parameter zu sammeln, bevor die im Attribut „action“ angegebene URL aufgerufen wird (normalerweise mit einem <input type="submit">Element im Formular).

Es ist nicht einmal klar, ob es sich um einen Server handelt. Wenn ja, um welchen Typ handelt es sich?

Antwort2

HTML hat diese Leistung nicht. Sie müssen PHP verwenden, da es als Backend-Sprache mit Ihrem Betriebssystem interagieren kann.

Sie können einen Link zu einer PHP-Datei erstellen. Wenn Sie auf den Link klicken, wird die PHP-Datei aufgerufen und das Skript ausgeführt. Anschließend können Sie angeben, dass Sie zur Startseite oder so zurückgeleitet werden sollen:

Index.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>

löschen.php

<?php
echo shell_exec('sh /path/to/delete.sh');
header('Location: /'); #this will take you back to the home page
?>

Ursprünglicher Beitrag:https://stackoverflow.com/questions/7397672/wie-man-eine-sh-datei-von-php-ausführt

verwandte Informationen