อาร์กิวเมนต์คำสั่ง Bash $ {…}


2

ฉันสังเกตเห็นอาร์กิวเมนต์คำสั่งประเภทนี้ในสคริปต์ทุบตี:

node ${debug?--nocrankshaft --nolazy --nodead_code_elimination --debug-brk=15454} app.js

ฉันสงสัยว่า${....}หมายถึงอะไร?

มันใช้งานอย่างไร?

นอกจากนี้ยังมีแหล่งข้อมูลที่ดีที่กล่าวถึงการเปลี่ยนแปลงคำสั่งอาร์กิวเมนต์ที่แตกต่างกันทั้งหมดสำหรับการทุบตี?


mywiki.wooledge.org/BashGuideหน้าของคุณคือ ...
Rmano

ทรัพยากรอื่นคือ: การขยายพารามิเตอร์ของเชลล์จากคู่มือทุบตี
joeytwiddle

คำตอบ:


1

สิ่งที่คุณเห็นที่นี่คือการขยายพารามิเตอร์ซึ่งสามารถคิดว่าเป็นชุดของวิธีการที่ใช้โดยทุบตีเป็นทางลัดในการประเมินตัวแปร (พารามิเตอร์ aka) ในกรณีเฉพาะนี้เรากำลังจัดการกับโครงสร้างต่อไปนี้:

${parameter:?word}
              Display  Error  if  Null or Unset.  If
              parameter is null or unset, the expan
              sion  of  word  (or  a message to that
              effect if  word  is  not  present)  is
              written  to the standard error and the
              shell,  if  it  is  not   interactive,
              exits.  Otherwise, the value of param
              eter is substituted.

(นำมาจากการทุบตีมนุษย์ )

กล่าวโดยย่อหากตัวแปรไม่มีการตั้งค่าหรือไม่มีอยู่ให้โยนข้อผิดพลาดดังนี้:

xieerqi:$ echo ${NOTSET?this param not set}          
mksh: NOTSET: this param not set

หากตั้งค่าตัวแปรไว้อย่าทำอะไรเลย

xieerqi:$ echo ${PWD?this param not set}             
/home/xieerqi

ในกรณีเฉพาะของคุณdebugพารามิเตอร์จะถูกส่งผ่านไปยังnodeและหากยังไม่ได้ตั้งค่าให้ผู้ใช้ดูว่าควรตั้งค่าไว้ที่ใด ได้แก่--nocrankshaft --nolazy --nodead_code_elimination --debug-brk=15454

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