100% -ban kompatibilis a dash, ash és sh szkript?

Szeretném tudni, hogy a kötőjelre, az ashra és az sh-re írt szkriptek 100% -ban kompatibilisek-e?

Vannak-e hozzáadott szolgáltatások kötőjel vagy hamu, vagy a szintaxis változása?

Amit hallottam, a ash a sh közvetlen leszármazottja.

Megjegyzések

  • hamu a bash csíkos formája
  • Forrás? Nem láttam semmi olyat, ami azt mondta volna, hogy a hamu összefügg a bash
  • Miért nem ' t adnának be emberek csak foltokat a bash-ba mindenféle héjak létrehozása helyett mindig. Ha valóban tudni akarja, olvassa el a kézikönyvet, pl. man ash
  • Helyes, nem ' származik bash. Pontosabb lenne azt mondani, hogy ' sh-ből származnak (az eredeti Bourne-héj), de ez a ' sem teljesen helytálló .
  • A checkbashisms segédprogram segítségével tesztelheti, hogy a szkript POSIX-kompatibilis-e.

Válasz

A rövid válasz nem, ők “100% -ban nem kompatibilis.

De a legtöbb héj meglehetősen közel van az alapszinthez, így csak ritkán ütközhetünk ellentmondásokba. a legtöbb héj nem sokban különbözik a hozzáadott szintaxistól, de néhány extra funkciótól, például a tabulátor kitöltésétől és hasonlóaktól.

Emellett az dash is a ash — vagy a BSD-ről a portra, egészen pontosan a portra. És mindegyiknek a . Valójában sh a legtöbb rendszerben csak egy szimbolikus link a bash, dash vagy valami máshoz. Fontos a POSIX-megfelelőség —, és amikor szkripteket írsz a szabványoknak megfelelően, nem fogsz problémába ütközni.

A héjak közötti különbség az optimalizálásban rejlik. és teljesítmény. “Kevésbé gazdag funkciókban, akkor bash, de teljesen legitim héjak. A Bash funkciókban gazdag interaktív munkához, de például több memóriát használ.

Megjegyzések

  • De szkripthasználathoz kompatibilisek?
  • És a POSIX-megfelelésről, még akkor is, ha követem ezt a szabványt, ha egy szkriptet írunk a Bash számára, akkor nem hinném, hogy bármelyik sh-en vagy annak leszármazottján futni fog.
  • Kompatibiliseknek kell lenniük egymással, ha ' nem használ néhány homályos funkciót. De ha bash szkriptet használ, akkor több problémába ütközhet.
  • soha nem volt célja, hogy sh vagy hamu vagy kötőjel mellett bash-t használjon. Melyek azok a homályos funkciók?
  • a bash ' sok új funkció a POSIX-hoz képest kiegészítés, így egyre valószínűbb, hogy nem hordozható kódot fogsz írni, ha ' használja őket. Az IIRC még a [[]] konstrukció sincs sh. Vigyázzon arra is, hogy ha ' nem ír tiszta shell parancsfájlt, akkor az eszközök közötti különbségek is szóba kerülnek (a sed, grep, awk különböző verziói …).

Válasz

Meg kell említeni, hogy egyes rendszereken, nevezetesen a Debianon, / bin / ash nem érhető el:

$ type ash dash bash: type: ash: not found dash is /bin/dash 

megjegyzések

  • Lehet, hogy bushoxik vannak.
  • Ennek ellenére sok olyan rendszer létezik, amelyek nem rendelkeznek ' t bash.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük