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 øker du Chromebookens batterilevetid

Slik øker du Chromebookens batterilevetid

Chromebooks skal ha fantastisk levetid på hele dagen - men ikke alle gjør det. Følg disse tipsene for å klemme mer batterilevetid ut av Chromebook. De samme grunnleggende prinsippene gjelder om du prøver å øke en Windows-bærbar batterilevetid eller klemme mer tid ut av en MacBook. Men alle operativsystemer har sin egen måte å gjøre disse tingene på.

(how-to)

Slik sender du håndskrevne og digitale berøringsmeldinger i iOS 10

Slik sender du håndskrevne og digitale berøringsmeldinger i iOS 10

Vi lever i en svært høyteknologisk verden. Vi går rundt med hodene våre bøyde ned til våre telefoner tapping bort på skjermene. Men har vi mistet håndskriften? Ikke helt. IOS 10 har tatt ett skritt mot å inkorporere håndskrift i vår daglige kommunikasjon. RELATED: Slik sender du en digital berøringsmelding med Apple Watch Du kan bruke meldingsappen i iOS 10 for å sende håndskrevne meldinger til dine venner og familie.

(how-to)

Interessante Artikler