no.phhsnews.com


no.phhsnews.com / Når er det bedre å bruke #! / Bin / bash I stedet for #! / Bin / sh i et Shell-skript?

Når er det bedre å bruke #! / Bin / bash I stedet for #! / Bin / sh i et Shell-skript?


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.

Spørsmålet

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?

Svaret

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


Slik lagrer du alle dine nåværende faner i Chrome for å lese senere

Slik lagrer du alle dine nåværende faner i Chrome for å lese senere

Chrome lar deg åpne faner fra den siste nettlesersesjonen din når du åpner nettleseren. Men hva om du vil lagre ditt nåværende sett med faner for å åpne på nytt når som helst? Chrome gir ikke en måte å gjøre det innfødt, men det er en enkel løsning med bokmerker. RELATED: Slik åpner du faner fra siste sesjon Når du starter nettleseren din Du kan bruke en utvidelse å gjøre dette, for eksempel Session Buddy.

(how-to)

Google blokkerer nå Crapware i søkeresultater, annonser og Chrome

Google blokkerer nå Crapware i søkeresultater, annonser og Chrome

Vi har gjort mye forskning på crapware og malware i det siste, og en av de mest bekymrende tingene vi fant var at Google serverte opp søkeresultater for åpen kildekode-programvare ... med crapware-bundling-annonser øverst. Nå ser det ut til at de har avsluttet denne politikken og peker på den virkelige nedlastingen øverst.

(how-to)