Ich habe ein einfaches Hello World Perl-Skript.
#!/usr/bin/perl
print 'Hello world.';
Es funktioniert gut, wenn ich es ausführe perl <file_name>
, aber es schlägt fehl, ich führe es aus sh <file_name>
.
Mein Verständnis der ersten Zeile ist, dass sie die Perl-Shell aufruft (ähnlich wie #! / Usr / bin / bash eine Bash-Shell aufruft). Was genau ist der Unterschied zwischen den beiden Befehlen?
Ich habe diesen Thread http://ubuntuforums.org/showthread.php?t=1133334 gefunden , der besagt: sh <file_name>
"In diesem Fall führen Sie überhaupt kein Perl aus, sondern die Shell, die das Programm 'print' aufruft." WENN das der Fall ist, ist das #! nur als Kommentar interpretiert. Wenn ja, wird es überhaupt benötigt?
(Mir ist bewusst, dass ich die Datei chmod + x und direkt ausführen kann, aber ich möchte nur den Unterschied zwischen den beiden von mir verwendeten Methoden kennen.)