Yapmaya çalıştığınız şey bu şekilde mümkün değil.
Bunun her zaman iki tarafı olduğunu unutmayın: İstemci tarafı ve sunucu tarafı. Komut dosyası istemci bilgisayarda mı yoksa sunucuda mı?
İstemcide ise: Ziyaretçi olarak yalnızca bir HTML web sitesi görüyorsunuz. onClick
yalnızca JavaScript'i (veya diğer komut dosyası dillerini ) başlatabilir , ancak bilgisayarınızda bulunan rastgele kabuk komut dosyalarını kullanamaz. HTML komut dosyaları yalnızca tarayıcıda çalışır ve yalnızca sınırlı şeyler yapabilir. En önemlisi, bilgisayarınızla etkileşime giremezler.
Bir düşünün: Tarayıcı dosyayı nasıl açacağını nasıl bilebilir? Bunun da bir güvenlik sorunu olacağını düşünmüyorsunuz - istemcinin bilgisayarındaki komut dosyalarının yürütülmesini tetikleyen sade bir web sitesi? Ya böyle bir şey olsaydı onClick('rm -rf /home/user')
?
Kod istemcide yürütülmesini istiyorsanız bir Java uygulaması çalıştırmak olabilir, ancak bu tam olarak aynı değildir ve bu gerçekten karmaşık bir şeydir. Bunu ayrıntılı olarak açıklamanın gerekli olduğunu düşünmüyorum.
Komut dosyası sunucudaysa: Sunucu tarafında bir komut dosyası çalıştırmak ve kullanıcının yürütülmesini tetiklemesini istiyorsanız, bir sunucu tarafı programlama dili kullanmanız gerekir. Sadece HTML bunu yapmaz, çünkü aşağı yukarı statik bir dosyadır. Sunucuyla etkileşim kurmak istiyorsanız, örneğin PHP kullanabilirsiniz .
exec
Web sunucusunda depolanan bir komut satırı komut dosyasını çalıştırma işlevine sahiptir . Temel olarak, yazabilirsiniz exec('/path/to/name.sh');
ve komut dosyasını sunucuda çalıştıracaktır.
Ancak, bunu sadece onClick
buraya koymak yeterli değildir. PHP ve sunucu tarafı web programlaması hakkında henüz bir bilginiz yoksa, önce birkaç öğreticiyi okumak ve sonra daha özel bir soru ile geri gelmek isteyebilirsiniz.
Uygun exec(...)
komutla bir php dosyanız varsa , komut dosyasının yalnızca kullanıcı için değil, web sunucusunun bulunduğu grup için de yürütme izinlerine sahip olduğundan emin olun, bu nedenle en basit durumda 777
.
Sorun olması durumunda echo exec(...);
, herhangi bir hata olup olmadığını görmek için komut dosyasının dönüş değerini kontrol edin .
Komut dosyasını, tarayıcıdan değil, komut satırından da çalıştırabilirsiniz php /path/to/file.php
.