Når du lager et nytt skalleskript, vil du lage sikker på at det er så problemfritt som mulig, men noen ganger kan det være litt forvirrende å vite hvilken shebang er den beste for deg å bruke. På dette notatet har dagens SuperUser Q & A-post svaret på et forvirret lesers spørsmål.
Dagens spørsmål og svar-sesjon kommer til oss med høflighet av SuperUser-en underavdeling av Stack Exchange, en fellesskapsdrevet gruppe av Q & A-nettsteder.
SuperUser-leseren Hendre vil vite når det er bedre å bruke #! / Bin / bash i stedet for #! / Bin / sh i shell-skript:
Når er det mer hensiktsmessig å bruke #! / Bin / bash i stedet for #! / Bin / sh i et skalskript?
Når er det bedre å bruke #! / bin / bash i stedet for #! / bin / sh i et shell-skript?
SuperUser-bidragsgravitasjonen har svaret for oss:
I kort:
- Det finnes flere skall som implementerer en superset av POSIX sh-spesifikasjonen. På forskjellige systemer, kan / bin / sh være en lenke til aske, bash, dash, ksh, zsh, etc. Det vil alltid være kompatibelt, men aldri csh eller fisk.
- Så lenge Som du holder fast i sh-funksjoner, kan du (og sannsynligvis også) bruke #! / bin / sh og skriptet skal fungere bra, uansett hvilket skall det er.
- Hvis du begynner å bruke bash-spesifikke funksjoner (dvs. arrayer), bør du spesielt be om bash fordi, selv om / bin / sh allerede påberoper bash på systemet ditt, er det kanskje ikke på alle andres system, og skriptet ditt vil ikke løpe der . Det samme gjelder for zsh og ksh, selvfølgelig.
- Selv om skriptet kun er til personlig bruk, kan det hende du merker at enkelte operativsystemer endrer / bin / sh under oppgraderinger. For eksempel var det på Debian det å være bash, men ble senere erstattet med den svært små dash. Skript som brukte bashisms, men hadde #! / Bin / sh plutselig brutt.
Men:
- Selv #! / Bin / bash er ikke så riktig. På forskjellige systemer kan bash leve i / usr / bin , / usr / pkg / bin eller / usr / local / bin .
- A mer pålitelig alternativ er #! / usr / bin / env bash , som bruker $ PATH . Selv om env-verktøyet selv ikke er strengt garantert, fungerer / usr / bin / env fortsatt på flere systemer enn / bin / bash gjør.
Har noe å legge til i forklaring? Lyder av i kommentarene. Vil du lese flere svar fra andre tech-savvy Stack Exchange-brukere? Se full diskusjonstråd her.
Bildekreditt: Wikipedia
Hva forhindrer DVD + R-plater fra å bli omformatert?
Selv om det er kjent at DVD + R og CD + R-plater er laget for å bli tatt opp bare én gang, kan du kanskje undre hvorfor er i motsetning til den omskrivbare arten av "RW" plater. Hva stopper "R" -plater fra å bli omformatert? Dagens SuperUser Q & A-post har svaret på en nysgjerrig leser spørsmålet. Dagens Spørsmål & Svar-sesjon kommer til oss med høflighet av SuperUser-en underavdeling av Stack Exchange, en fellesskapsdrevet gruppe av Q & A-nettsteder.
Forstå hva den store Kinas brannmur kan hjelpe oss å forstå hvordan enkelte organisasjoner vil sette internetsensur på plass over hele verden. Hvis du tror at Great Firewall bare bruker en censurmetode, tenk igjen - den bruker en rekke triks. Hva er Kinas store brannmur? Hvis du ikke har fulgt, har Kina en sensur Internett.