แบ็กสแลช (\) (อังกฤษ: backslash) เป็นเครื่องหมายการพิมพ์ที่ใช้มากในคอมพิวเตอร์ ลักษณะเป็นภาพสะท้อน ของเครื่องหมายทับ(หรือแสลช)ธรรมดา (/) เครื่องหมายนี้อยู่ที่ U+005C \ reverse solidus (92decimal) ในยูนิโคดและแอสกี
\ \ | |
---|---|
แบ็กสแลช | |
ประวัติ
บ็อบ เบเมอร์ ได้เพิ่มอักขระ \ ลงใน ASCII ในวันที่ 18 กันยายน 1961, โดยมีสาเหตุจากการศึกษาความถี่ของตัวอักษร การเพิ่มเครื่องหมาย \ มีจุดประสงค์โดยเฉพาะให้ตัวดำเนินการบูลีน ALGOL ∧ (และ) กับ ∨ (หรือ) สามารถประกอบจากสัญลักษณ์ที่มีใน ASCII เป็น /\ กับ \/ ตามลำดับ ตัวดำเนินการทั้งสองนี้รวมอยู่ในภาษาซีรุ่นแรกที่มาพร้อมกับรับบปฏิบัติการ Unix V6 Unix V7 และปัจจุบัน BSD 2.11
การใช้งาน
ในภาษาโปรแกรมหลายภาษา เช่น ซี เพิร์ล พีเอชพี ไพทอน และในภาษาสคริปต์ยูนิกซ์ ใช้แบ็กสแลชเป็นอักขระหลีก (escape character) เพื่อระบุว่าให้ปฎิบัติกับอักขระที่ตามมาเป็นพิเศษ (ถ้าปกติอักขระตัวนั้นไม่มีความหมายพิเศษ) หรือเป็นปกติ (ถ้าอักขระตัวนั้นมีความหมายพิเศ) ตัวอย่างเช่นภายในสตริงภาษาซี ลำดับ\n จะให้ค่าเป็นอักขระขึ้นบรรทัดใหม่ แทนที่จะเป็นตัวอักษร 'n' ตรง ๆ และลำดับ \" หมายถึงเครื่องหมายคำพูดคู่ตรง ๆ แทนที่จะเป็นความหมายพิเศษของเครื่องหมายคำพูดคู่ซึ่งใช้ลงท้ายสตริง ในทำนองเดียวกัน ภาษาของนิพจน์ปรกติ (regular expression) ต่าง ๆ ใช้เครื่องหมายนี้เปลี่ยนระหว่างอักขระตามตัวอักษรกับอักขระควบคุม (metacharacter) จากลักษณะการใช้งานนี้ ลำดับแบ็กสแลชคู่ \\ จะหมายถึงอักขระแบ็กสแลชตามตัวอักษรปกติ
นอกเหนือจากในสตริง การใช้งาน \ โดยทั่วไป มีแค่การใช้ลงท้ายบรรทัดเพื่อระบุให้ละเว้นอักขระขึ้นบรรทัดใหม่ที่ต่อท้าย ดังนั้นบรรทัดถัดจากนั้นจะถูกปฏิบัติเสมือนว่าเป็นส่วนหนึ่งของบรรทัดเดิม ในบริบทนี้อาจเรียกว่า "ความต่อเนื่อง"
ภาษาโปรแกรม ALGOL 68 ใช้ "\" เป็น สัญลักษณ์เลขชี้กำลังฐานสิบ โดยมีตัวเลือก 4 แบบ: e, E, \, หรือ 10 ตัวอย่าง: 6.0221415e23 6.0221415E23 , 6.0221415\23 หรือ 6.02214151023
ในภาษา APL \ เรียกว่า Expand เมื่อใช้เพื่อแทรก fill element ลงในอาร์เรย์และ Scan เมื่อใช้ทำ prefix reduction (cumulative fold)
แบ็กสแลชใช้ในระบบ TeX และในไฟล์ RTF เพื่อเริ่มแท็กมาร์กอัป ในภาษาแฮสเกลล์ ใช้แบ็กสแลชในการระบุทั้งอักขระพิเศษและฟังก์ชันแลมบ์ดา (เนื่องจากเป็นสัญลักษณ์ ASCII ที่คล้ายกลับ อักษรแลมบ์ดา λ)
MS-DOS 2.0 ซึ่งเปิดตัว ค.ศ. 1983 คัดลอกระบบไฟล์แบบลำดับชั้นมาจากยูนิกซ์ จึงใช้ เครื่องหมายทับ(ไปข้างหน้า) แต่ได้เพิ่มแบ็กสแลช (อาจมาจากการเสนอของ IBM) สำหรับการพิมพ์พาธในพรอมต์ของอินเทอร์พรีเตอร์บรรทัดคำสั่ง ในขณะที่ยังคงรักษาความเข้ากันได้กับ MS-DOS 1.0 โดยที่เครื่องหมายทับเป็นตัวบ่งชี้ตัวเลือกบรรทัดคำสั่ง (เช่น การพิมพ์ "DIR/W" จะระบุตัวเลือก "wide" ให้คำสั่ง "DIR" ดังนั้นจะต้องใช้วิธีอื่นในการเรียกใช้โปรแกรมที่เรียกว่า W ภายในไดเรกทอรีที่เรียกว่า DIR) นอกเหนือจาก COMMAND.COM ส่วนอื่น ๆ ทั้งหมดของระบบปฏิบัติการ ยอมรับทั้งสองตัวอักษรในการระบุพาธ แต่ระเบียบปกติของไมโครซอฟต์ ยังคงใช้แบ็กสแลชและ API ที่ย้อนกลับเส้นทาง ใช้แบ็กสแลช ในบางรุ่น อักขระตัวเลือกสามารถเปลี่ยนจาก / เป็น - ผ่าน SWITCHAR ซึ่งอนุญาตให้ COMMAND.COM รักษาการใช้ / ในชื่อคำสั่ง
ตระกูลระบบปฏิบัติการ ไมโครซอฟท์ วินโดวส์ สืบทอดการทำงานจาก MS-DOS และยังคงรองรับอักขระทั้งสองแบบ แต่โปรแกรมและระบบย่อยแต่ละตัวของวินโดวส์ อาจผิดพลาดและยอมรับตัวคั่นพาธ เฉพาะแบ็กสแลช หรืออาจตีความเครื่องหมายทับธรรมดาผิดเมื่อใช้ในลักษณะนี้ บางโปรแกรมจะยอมรับเครื่องหมายทับเท่านั้นหากพาธอยู่ในเครื่องหมายคำพูดคู่ ความล้มเหลวของระบบรักษาความปลอดภัยของไมโครซอฟต์ในการรับรู้ถึงทิศทางที่ไม่คาดคิดในพาธท้องถิ่นและบนอินเทอร์เน็ตในขณะที่ส่วนอื่น ๆ ของระบบปฏิบัติการยังคงปฏิบัติหน้าที่อยู่นั้น เคยนำไปสู่ปัญหาทางความปลอดภัยที่ร้ายแรง โดยแหล่งข้อมูลที่ไม่ควรเข้าถึงได้ อาจเข้าถึงผ่านด้วยเส้นทางที่ใช้สูตรเฉพาะเช่น http://example.net/secure\private.aspx
ในวิชาคณิตศาสตร์ ใช้เครื่องหมายเหมือนแบ็กสแลชแสดงส่วนเติมเต็ม และบางครั้งใช้เพื่อแสดงถึงปริภูมิคอเซตขวา (right coset space)
ในภาษาโปรแกรม BASIC บางแบบ ใช้แบ็กสแลชเป็นสัญลักษณ์ของตัวดำเนินการการ หารแบบเลขจำนวนเต็ม (integer division)
ใน MATLAB และ GNU Octave เครื่องหมายแบ็กสแลชใช้แสดงการหารเมทริกซ์ทางซ้ายในขณะที่เครื่องหมายทับใช้สำหรับการหารเมทริกซ์ทางขวา
ความสับสนในการใช้งาน
ในรหัสอักขระภาษาญี่ปุ่น ISO 646 (รหัส 7 บิต ที่ปรับมาจาก ASCII) JIS X 0201 (รหัส 8 บิต) และ Shift JIS (รหัสหลายไบต์ที่เป็น 8 บิตสำหรับ ASCII) ตำแหน่ง 0x5C ที่ใช้เป็นแบ็กสแลชใน ASCII กลับใช้แทนเครื่องหมายเยน (¥) ส่วนในรหัสอักขระภาษาเกาหลี ใช้เป็นเครื่องหมายวอน (₩) แต่โปรแกรมคอมพิวเตอร์จะยังคงมองรหัสนี้ว่าเป็นแบ็กสแลช ทำให้เกิดความสับสนในการทำงาน โดยเฉพาะในชื่อไฟล์ Ms-DOS เนื่องจากการใช้รหัสสำหรับแบ็กสแลชในการแทนเครื่องหมายเยน ในปัจจุบันฟอนต์ยูนิโคดบางฟอนต์เช่น ก็จะแสดงเครื่องหมายแบ็กสแลชเป็น ¥ ทำให้อักขระที่ตำแหน่ง 00A5 กับ 005C หน้าตาเหมือนกัน นอกจากนี้ ISO 646 เวอร์ชันอื่น ๆ ก็มีการแทนที่แบ็กสแลชด้วยอักขระอื่น ๆ เช่น Ö (เยอรมัน, สวีเดน) Ø (เดนมาร์ก, นอร์เวย์) ç (ฝรั่งเศส) และ Ñ (สเปน) ซึ่งนำไปสู่ปัญหาทำนองเดียวกัน
อ้างอิง
- "Mini-Biography of Bob Bemer". Thocp.net. สืบค้นเมื่อ 2013-06-16.
- "How ASCII Got Its Backslash" 2014-07-11 ที่ เวย์แบ็กแมชชีน, Bob Bemer
- "How ASCII Got Its Backslash" 2014-07-11 ที่ เวย์แบ็กแมชชีน, Bob Bemer
- Bob Bemer (2002-07-07). . Computer History Vignettes. Bob Bemer. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2009-06-04. สืบค้นเมื่อ 2009-10-11.
- "GNU 'make' manual". Gnu.org. สืบค้นเมื่อ 2013-06-16.
- "Revised Report on the Algorithmic Language Algol 68". September 1973. สืบค้นเมื่อ April 30, 2007.[]
- O'Sullivan, Stewart, and Goerzen, Real World Haskell, ch. 4: anonymous (lambda) functions, p.99
- "Why is the DOS path character "\"?". Blogs.msdn.com. 2005-06-24. สืบค้นเมื่อ 2013-06-16.
- Necasek, Michal (24 พฤษภาคม 2019). . OS/2 Museum. คลังข้อมูลเก่าเก็บจากแหล่งเดิม (html)เมื่อ 24 พฤษภาคม 2019. สืบค้นเมื่อ 28 พฤษภาคม 2019.
- "Path.GetFullPath Method". .NET Framework Class Library. Microsoft. จากแหล่งเดิมเมื่อ 21 December 2008. สืบค้นเมื่อ 2009-01-02.
- "When did Windows start accepting forward slash as a path separator?". Bytes.com. จากแหล่งเดิมเมื่อ 6 February 2009. สืบค้นเมื่อ 2009-01-02.
- Kaplan, Simone (2004). "Microsoft Probes Flaw in ASP.NET". DevSource, sponsored by Microsoft. Ziff Davis Enterprise Holdings Inc. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2013-01-21. สืบค้นเมื่อ 2009-06-14.
- Burnett, Mark (2004). . SecurityFocus. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2021-02-02. สืบค้นเมื่อ 2009-06-14.
- "Quantities and units – Part 2: Mathematical signs and symbols to be used in the natural sciences and technology". ISO 80000-2:2009. International Organization for Standardization.
- "Definition:Coset Space". ProofWiki. สืบค้นเมื่อ 1 February 2017.
- "Arithmetic Operators in Visual Basic". Visual Basic Language Features: Operators and Expressions. MSDN. สืบค้นเมื่อ 7 October 2012.
- Eaton, John W.; David Bateman; Søren Hauberg (February 2011). "GNU Octave: A high-level interactive language for numerical computations" (PDF). Free Software Foundation. p. 145. สืบค้นเมื่อ 7 October 2012.
- "When is a backslash not a backslash?". Blogs.msdn.com. สืบค้นเมื่อ 2013-06-16.
wikipedia, แบบไทย, วิกิพีเดีย, วิกิ หนังสือ, หนังสือ, ห้องสมุด, บทความ, อ่าน, ดาวน์โหลด, ฟรี, ดาวน์โหลดฟรี, mp3, วิดีโอ, mp4, 3gp, jpg, jpeg, gif, png, รูปภาพ, เพลง, เพลง, หนัง, หนังสือ, เกม, เกม, มือถือ, โทรศัพท์, Android, iOS, Apple, โทรศัพท์โมบิล, Samsung, iPhone, Xiomi, Xiaomi, Redmi, Honor, Oppo, Nokia, Sonya, MI, PC, พีซี, web, เว็บ, คอมพิวเตอร์
aebksaelch xngkvs backslash epnekhruxnghmaykarphimphthiichmakinkhxmphiwetxr lksnaepnphaphsathxn khxngekhruxnghmaythb hruxaeslch thrrmda ekhruxnghmaynixyuthi U 005C reverse solidus 92decimal inyuniokhdaelaaexski aebksaelchwrrkhtxnxaphxsthrxfi wngelb thwiphakh culphakh cudikhpla xsecriy mhphphakh ytiphngkh ytiphakh prsni xyprakas xthphakh thb ewnwrrkh thwipaexmephxraesnd amp dxkcn aebksaelch xngsa buphsyya xsecriyklbhw prsniklbhw ekhruxnghmayxangxing nmebxr aehchaethk º ª epxresnt epxrmill thrphysinthangpyya c kxppielft skulengin sylksnskulengin 元 圆 圓 円karphimphechphaathang thiekiywkhxngekhruxnghmaytrrksastrinphasaxun inphasaithyokhmutrtinkhru ipyalnxyipyalihylfxngmnimymkxngkhn a ahmwdhmudkhkprawtibxb ebemxr idephimxkkhra lngin ASCII inwnthi 18 knyayn 1961 odymisaehtucakkarsuksakhwamthikhxngtwxksr karephimekhruxnghmay micudprasngkhodyechphaaihtwdaeninkarbulin ALGOL aela kb hrux samarthprakxbcaksylksnthimiin ASCII epn kb tamladb twdaeninkarthngsxngnirwmxyuinphasasirunaerkthimaphrxmkbrbbptibtikar Unix V6 Unix V7 aelapccubn BSD 2 11karichnganinphasaopraekrmhlayphasa echn si ephirl phiexchphi iphthxn aelainphasaskhriptyuniks ichaebksaelchepnxkkhrahlik escape character ephuxrabuwaihpdibtikbxkkhrathitammaepnphiess thapktixkkhratwnnimmikhwamhmayphiess hruxepnpkti thaxkkhratwnnmikhwamhmayphies twxyangechnphayinstringphasasi ladb n caihkhaepnxkkhrakhunbrrthdihm aethnthicaepntwxksr n trng aelaladb hmaythungekhruxnghmaykhaphudkhutrng aethnthicaepnkhwamhmayphiesskhxngekhruxnghmaykhaphudkhusungichlngthaystring inthanxngediywkn phasakhxngniphcnprkti regular expression tang ichekhruxnghmayniepliynrahwangxkkhratamtwxksrkbxkkhrakhwbkhum metacharacter caklksnakarichnganni ladbaebksaelchkhu cahmaythungxkkhraaebksaelchtamtwxksrpkti nxkehnuxcakinstring karichngan odythwip miaekhkarichlngthaybrrthdephuxrabuihlaewnxkkhrakhunbrrthdihmthitxthay dngnnbrrthdthdcaknncathukptibtiesmuxnwaepnswnhnungkhxngbrrthdedim inbribthnixaceriykwa khwamtxenuxng phasaopraekrm ALGOL 68 ich epn sylksnelkhchikalngthansib odymitweluxk 4 aebb e E hrux 10 twxyang 6 0221415e23 6 0221415E23 6 0221415 23 hrux 6 02214151023 inphasa APL eriykwa Expand emuxichephuxaethrk fill element lnginxareryaela Scan emuxichtha prefix reduction cumulative fold aebksaelchichinrabb TeX aelainifl RTF ephuxerimaethkmarkxp inphasaaehsekll ichaebksaelchinkarrabuthngxkkhraphiessaelafngkchnaelmbda enuxngcakepnsylksn ASCII thikhlayklb xksraelmbda l MS DOS 2 0 sungepidtw kh s 1983 khdlxkrabbiflaebbladbchnmacakyuniks cungich ekhruxnghmaythb ipkhanghna aetidephimaebksaelch xacmacakkaresnxkhxng IBM sahrbkarphimphphathinphrxmtkhxngxinethxrphrietxrbrrthdkhasng inkhnathiyngkhngrksakhwamekhaknidkb MS DOS 1 0 odythiekhruxnghmaythbepntwbngchitweluxkbrrthdkhasng echn karphimph DIR W carabutweluxk wide ihkhasng DIR dngnncatxngichwithixuninkareriykichopraekrmthieriykwa W phayiniderkthxrithieriykwa DIR nxkehnuxcak COMMAND COM swnxun thnghmdkhxngrabbptibtikar yxmrbthngsxngtwxksrinkarrabuphath aetraebiybpktikhxngimokhrsxft yngkhngichaebksaelchaela API thiyxnklbesnthang ichaebksaelch inbangrun xkkhratweluxksamarthepliyncak epn phan SWITCHAR sungxnuyatih COMMAND COM rksakarich inchuxkhasng trakulrabbptibtikar imokhrsxfth winodws subthxdkarthangancak MS DOS aelayngkhngrxngrbxkkhrathngsxngaebb aetopraekrmaelarabbyxyaetlatwkhxngwinodws xacphidphladaelayxmrbtwkhnphath echphaaaebksaelch hruxxactikhwamekhruxnghmaythbthrrmdaphidemuxichinlksnani bangopraekrmcayxmrbekhruxnghmaythbethannhakphathxyuinekhruxnghmaykhaphudkhu khwamlmehlwkhxngrabbrksakhwamplxdphykhxngimokhrsxftinkarrbruthungthisthangthiimkhadkhidinphaththxngthinaelabnxinethxrentinkhnathiswnxun khxngrabbptibtikaryngkhngptibtihnathixyunn ekhynaipsupyhathangkhwamplxdphythirayaerng odyaehlngkhxmulthiimkhwrekhathungid xacekhathungphandwyesnthangthiichsutrechphaaechn http example net secure private aspx inwichakhnitsastr ichekhruxnghmayehmuxnaebksaelchaesdngswnetimetm aelabangkhrngichephuxaesdngthungpriphumikhxestkhwa right coset space inphasaopraekrm BASIC bangaebb ichaebksaelchepnsylksnkhxngtwdaeninkarkar haraebbelkhcanwnetm integer division in MATLAB aela GNU Octave ekhruxnghmayaebksaelchichaesdngkarharemthriksthangsayinkhnathiekhruxnghmaythbichsahrbkarharemthriksthangkhwa in PHP ewxrchn 5 3 khunipcaichaebksaelchephuxrabuenmsepskhwamsbsninkarichnganinrhsxkkhraphasayipun ISO 646 rhs 7 bit thiprbmacak ASCII JIS X 0201 rhs 8 bit aela Shift JIS rhshlayibtthiepn 8 bitsahrb ASCII taaehnng 0x5C thiichepnaebksaelchin ASCII klbichaethnekhruxnghmayeyn swninrhsxkkhraphasaekahli ichepnekhruxnghmaywxn aetopraekrmkhxmphiwetxrcayngkhngmxngrhsniwaepnaebksaelch thaihekidkhwamsbsninkarthangan odyechphaainchuxifl Ms DOS enuxngcakkarichrhssahrbaebksaelchinkaraethnekhruxnghmayeyn inpccubnfxntyuniokhdbangfxntechn kcaaesdngekhruxnghmayaebksaelchepn thaihxkkhrathitaaehnng 00A5 kb 005C hnataehmuxnkn nxkcakni ISO 646 ewxrchnxun kmikaraethnthiaebksaelchdwyxkkhraxun echn O eyxrmn swiedn O ednmark nxrewy c frngess aela N sepn sungnaipsupyhathanxngediywknxangxing Mini Biography of Bob Bemer Thocp net subkhnemux 2013 06 16 How ASCII Got Its Backslash 2014 07 11 thi ewyaebkaemchchin Bob Bemer How ASCII Got Its Backslash 2014 07 11 thi ewyaebkaemchchin Bob Bemer Bob Bemer 2002 07 07 Computer History Vignettes Bob Bemer khlngkhxmulekaekbcakaehlngedimemux 2009 06 04 subkhnemux 2009 10 11 GNU make manual Gnu org subkhnemux 2013 06 16 Revised Report on the Algorithmic Language Algol 68 September 1973 subkhnemux April 30 2007 lingkesiy O Sullivan Stewart and Goerzen Real World Haskell ch 4 anonymous lambda functions p 99 Why is the DOS path character Blogs msdn com 2005 06 24 subkhnemux 2013 06 16 Necasek Michal 24 phvsphakhm 2019 OS 2 Museum khlngkhxmulekaekbcakaehlngedim html emux 24 phvsphakhm 2019 subkhnemux 28 phvsphakhm 2019 Path GetFullPath Method NET Framework Class Library Microsoft cakaehlngedimemux 21 December 2008 subkhnemux 2009 01 02 When did Windows start accepting forward slash as a path separator Bytes com cakaehlngedimemux 6 February 2009 subkhnemux 2009 01 02 Kaplan Simone 2004 Microsoft Probes Flaw in ASP NET DevSource sponsored by Microsoft Ziff Davis Enterprise Holdings Inc khlngkhxmulekaekbcakaehlngedimemux 2013 01 21 subkhnemux 2009 06 14 Burnett Mark 2004 SecurityFocus khlngkhxmulekaekbcakaehlngedimemux 2021 02 02 subkhnemux 2009 06 14 Quantities and units Part 2 Mathematical signs and symbols to be used in the natural sciences and technology ISO 80000 2 2009 International Organization for Standardization Definition Coset Space ProofWiki subkhnemux 1 February 2017 Arithmetic Operators in Visual Basic Visual Basic Language Features Operators and Expressions MSDN subkhnemux 7 October 2012 Eaton John W David Bateman Soren Hauberg February 2011 GNU Octave A high level interactive language for numerical computations PDF Free Software Foundation p 145 subkhnemux 7 October 2012 When is a backslash not a backslash Blogs msdn com subkhnemux 2013 06 16