การแก้ไขเครื่องหมายดอลลาร์ในเครื่องหมายคำพูดในทุบตี


9

ฉันใช้งานสคริปต์ทดสอบเล็ก ๆ นี้ที่ฉันเขียน:

#!/bin/bash

TESTCASE=$@
testHarness <<runTest
$TESTCASE
runTest

จากบรรทัดคำสั่ง:

./test.sh "1092$212"

แต่เครื่องหมายดอลลาร์กำลังถูกถอดออก ถ้าฉันหลบหนีมันใช้งานได้ แต่ฉันคิดว่าเครื่องหมายคำพูดคู่จะป้องกันฉันจากการต้องทำสิ่งนี้ ใครช่วยได้โปรดช่วยฉันเข้าใจว่าเกิดอะไรขึ้นและจะแก้ไขได้อย่างไร


ปัญหาคือมันคลุมเครือแม้สำหรับฉันในฐานะมนุษย์ - สิ่งที่คุณต้องการที่นี่ดังนั้นคอมพิวเตอร์จึงไม่มีโอกาส บางทีล่ามทุบตีพยายามที่จะได้รับ $ 212 Bash จะล้มเหลวอย่างเงียบ ๆ หากคุณพยายามที่จะขยายตัวแปรที่ไม่มีอยู่ดังนั้น $ จะถูกดึงออก พิจารณาห่อตัวแปรของคุณไว้ในวงเล็บเช่น "1092 $ {2} 12"
Brian Peterson

คำตอบ:


18

ตัวแปรยังคงถูกขยายในเครื่องหมายคำพูดคู่ หากคุณต้องการหลีกเลี่ยงพฤติกรรมนี้คุณควรใช้เครื่องหมายคำพูดเดี่ยวแทน


ขอบคุณ. วิธีนี้ใช้ได้ผล มีเหตุผลสำหรับสิ่งนี้หรือไม่?
Amir Afghanani

8
ใช่. มันถูกออกแบบมาอย่างนั้น! มันค่อนข้างมีประโยชน์จริง ๆ ที่จะสามารถขยายตัวแปรภายในสตริงที่ยกมา มันเป็นคุณสมบัติ หากคุณไม่ต้องการพฤติกรรมให้ใช้เครื่องหมายคำพูดเดี่ยวนั่นคือสิ่งที่พวกเขาออกแบบมา
Caleb
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.