එය වඩා හොඳ නොවේ.
මෙහි ඇති වාසිය #!/usr/bin/env pythonනම්, එය pythonපරිශීලකයාගේ පළමුව පෙනෙන ඕනෑම ක්රියාත්මක කළ හැකි දෙයක් භාවිතා කිරීමයි $PATH.
මෙම අවාසිය පිළිබඳ #!/usr/bin/env pythonඑය ඕනෑම දෙයක් භාවිත වේ pythonපළමු පරිශීලක දී ක්රියාත්මක දර්ශණය $PATH.
එයින් අදහස් කරන්නේ තිර රචනය ක්රියාත්මක කරන්නේ කවුරුන්ද යන්න මත පදනම්ව වෙනස් ලෙස හැසිරවිය හැකි බවයි. එක් පරිශීලකයෙකු සඳහා, එය /usr/bin/pythonමෙහෙයුම් පද්ධතිය සමඟ ස්ථාපනය කර ඇති දේ භාවිතා කරයි . තවත් කෙනෙකුට, එය /home/phred/bin/pythonනිවැරදිව ක්රියා නොකරන අත්හදා බැලීමක් භාවිතා කරයි .
නම් සහ pythonපමණක් ස්ථාපනය කර /usr/local/bin, නැති වූ පරිශීලක /usr/local/binදී $PATHපවා කේත රචනය ක්රියාත්මක කිරීමට නොහැකි වනු ඇත. (බොහෝ විට එය නවීන පද්ධතිවල එතරම් ඉඩක් නැත, නමුත් එය වඩාත් අපැහැදිලි පරිවර්තකයෙකුට පහසුවෙන් සිදුවිය හැකිය.)
විශේෂිත පද්ධතියක#!/usr/bin/python ස්ක්රිප්ට් ධාවනය කිරීමට භාවිතා කරන්නේ කුමන පරිවර්තකයද යන්න නිශ්චිතව සඳහන් කිරීමෙන් .
තවත් විභව ගැටළුවක් නම්, #!/usr/bin/envඋපක්රමය මඟින් ඔබට පරිවර්තකයාට තර්ක ඉදිරිපත් කිරීමට ඉඩ නොදීමයි (පිටපතේ නම හැර, එය ව්යංගයෙන් සම්මත වේ). මෙය සාමාන්යයෙන් ප්රශ්නයක් නොවේ, නමුත් එය විය හැකිය. බොහෝ පර්ල් ස්ක්රිප්ට් සමඟ ලියා ඇත #!/usr/bin/perl -w, නමුත් use warnings;මේ දිනවල නිර්දේශිත ප්රතිස්ථාපනය වේ. Csh ස්ක්රිප්ට් භාවිතා කළ යුතුය #!/bin/csh -f- නමුත් csh ස්ක්රිප්ට් මුලින් නිර්දේශ නොකරයි . නමුත් වෙනත් උදාහරණ තිබිය හැකිය.
මම නව පද්ධතියක ගිණුමක් ආරම්භ කරන විට ස්ථාපනය කරන පුද්ගලික ප්රභව පාලන පද්ධතියක පර්ල් ස්ක්රිප්ට් ගණනාවක් තිබේ. මම #!එක් එක් ස්ක්රිප්ටයේ රේඛාව මගේ ස්ථාපනය කරන විට එය වෙනස් කරන ස්ථාපක ස්ක්රිප්ට් එකක් භාවිතා කරමි $HOME/bin. (මට #!/usr/bin/perlමෑතකදී හැර වෙනත් කිසිවක් භාවිතා කිරීමට සිදු වී නැත ; එය පෙරල් බොහෝ විට පෙරනිමියෙන් ස්ථාපනය නොකළ කාලයට දිව යයි.)
සුළු කරුණක්: #!/usr/bin/envඋපක්රමය envවිධාන ලෙස විධානය අනිසි ලෙස භාවිතා කිරීමකි , එය මුලින් අදහස් කළේ (නමට අනුව) වෙනස් කළ පරිසරයක් සහිත විධානයක් ඉල්ලා සිටීමයි. තවද, සමහර පැරණි පද්ධතිවල (සන් ඕඑස් 4 ද ඇතුළුව, මා නිවැරදිව සිහිපත් කළහොත්) envවිධානය නොතිබුණි /usr/bin. මේ දෙකම සැලකිය යුතු කරුණක් විය නොහැක. envමේ ආකාරයෙන් ක්රියා කරයි, බොහෝ ස්ක්රිප්ට් #!/usr/bin/envඋපක්රමය භාවිතා කරයි , සහ මෙහෙයුම්කරුවන් එය බිඳ දැමීමට කිසිවක් නොකරනු ඇත. එය විය හැකි ඔබ ඔබේ තිර රචනය ඇත්තටම පැරණි පද්ධතිය මත ක්රියාත්මක කිරීමට අවශ්ය නම් ප්රශ්නයක්, නමුත්, පසුව, ඔබට එය කෙසේ හෝ වෙනස් කිරීමට අවශ්ය කිරීමට ඉඩ ඇති.
විය හැකි තවත් කාරණයක් නම්, (අදහස් දැක්වීමේදී එය පෙන්වා දීම ගැන සොපලාජෝ ඩි ඇරියරෙස්ට ස්තූතියි) ක්රෝන් රැකියා සීමිත පරිසරයක් සමඟ ක්රියාත්මක වීමයි. විශේෂයෙන්, $PATHසාමාන්යයෙන් එවැනි දෙයක් /usr/bin:/bin. එබැවින් පරිවර්තකය අඩංගු නාමාවලිය එම නාමාවලි වලින් එකක සිදු නොවන්නේ නම්, එය $PATHපරිශීලක කවචයක ඔබගේ පෙරනිමියෙන් වුවද, /usr/bin/envඋපක්රමය ක්රියා නොකරනු ඇත. ඔබට නිශ්චිත මාර්ගය නියම කළ හැකිය, නැතහොත් සැකසීමට ඔබේ හරස්කඩට රේඛාවක් එක් කළ හැකිය $PATH( man 5 crontabවිස්තර සඳහා).