อะไรคือความหมายของ $ 1 ในการทุบตี?


27

จริง ๆ แล้วฉันกำลังเล่นกับข้อโต้แย้งและมันเกิดขึ้น ฉันแค่คิดว่าอยากจะเห็นว่าจะเกิดอะไรขึ้นถ้าฉันพิมพ์$$1และฉันทำมันและได้บางสิ่งด้านล่าง

raja@raja-BONEFISH:~$ $$1
19301: command not found

19301 หมายถึงอะไรมันบอกอะไรบางอย่าง?

Bottom-Line: สิ่งที่มีความหมาย$$1ในทุบตี


1
อุ๊ยตาย !! สิ่งที่ง่ายมาก ฉันยังมีอีกหลายสิ่งที่ต้องเรียนรู้ คำตอบทั้งหมดนั้นยอดเยี่ยม +1 ให้กับทุกคน
rɑːdʒɑ

คำตอบ:


27

$$ คือ PID (id กระบวนการ) ของกระบวนการปัจจุบัน

$$1คือด้านบน PID 1ตามด้วยสตริงตัวอักษร

ดังนั้นจึงเป็นการบอกคุณว่าbashกระบวนการของคุณคือ PID 1930

แต่ ... เคล็ดลับฟรี:

show() { eval echo \$$1; }
show PATH
/home/romano/bin:/usr/local/bin:/bin:/usr/bin

(ค่อนข้างซับซ้อนไม่ได้ใช่มั้ย)

ข้อมูลอื่น ๆ ในTLDP


1
ดูเพิ่มเติม - tldp.org/LDP/abs/html/internalvariables.html
Panther

1
ครู่หนึ่งฉันอ่าน TLDP เป็น "นานเกินไปไม่ได้ฉี่"
Luis Alvarado

13
  • $$- pid ของเชลล์ปัจจุบัน (ไม่ใช่ subshell) - ดูตัวแปรเชลล์สัญลักษณ์ดอลลาร์คืออะไร?

  • $$1- pid ของเปลือกปัจจุบัน (ไม่ subshell) 1ตามด้วย

  • $$2- pid ของเปลือกปัจจุบัน (ไม่ subshell) 2ตามด้วย

  • $$a- pid ของเชลล์ปัจจุบัน (ไม่ใช่เชลล์ย่อย) ตามด้วยaอักขระ

  • และอื่น ๆ ...

echo $$1ดูการส่งออกของ

และคุณได้รับข้อผิดพลาดcommand not foundเพราะคุณพยายามที่จะรันสตริงที่ประกอบด้วยตัวเลขซึ่งเห็นได้ชัดว่าไม่ใช่คำสั่ง


10

คุณได้ตัดแบ่ง$$และ1ร่วมกันที่จะได้รับ PID ของเปลือกปัจจุบันและ1เช่น$$ยืนสำหรับ PID ของเปลือกทำงานอยู่ในปัจจุบันและ1เป็นเพียงตัวละครที่คุณสามารถทำ$$a, $$@ที่จะได้รับการตัดแบ่ง PID ด้วยตัวอักษรต่อไปนี้


6

$$ มันจะระบุ1930ซึ่งเป็นpidของเปลือกปัจจุบัน

เมื่อคุณพิมพ์$$1ที่หมายถึง pid 19301ตามด้วยหนึ่งเพื่อให้คุณส่งออกจะเป็น

ลอง$$2เอาท์พุทจะเป็น19302

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