Ý nghĩa của $$ 1 trong bash là gì?


27

Tôi thực sự đang chơi với các đối số và nó đã xảy ra. Tôi chỉ nghĩ muốn xem điều gì sẽ xảy ra nếu tôi gõ $$1và tôi đã làm điều đó và nhận được một cái gì đó bên dưới.

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

Điều đó có nghĩa là 19301, nó đang nói lên điều gì?

Dòng dưới cùng: có ý nghĩa gì $$1trong bash.


1
ôi !! điều đó thật dễ dàng Tôi vẫn còn nhiều điều phải học. Tất cả các câu trả lời là siêu. +1 cho tất cả.
rdʒɑ

Câu trả lời:


27

$$ là PID (id quá trình) của quy trình hiện tại.

$$1là PID trên theo sau là chuỗi ký tự 1.

Vì vậy, nó nói với bạn rằng bạn bashlà quá trình với PID 1930.

Nhưng ... mẹo miễn phí:

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

(khá phức tạp, phải không?)

Thêm thông tin trong TLDP .



1
Trong một khoảnh khắc, tôi đọc TLDP là "Quá lâu không đi tiểu".
Luis Alvarado

13
  • $$- pid của shell hiện tại (không phải là subshell) - xem các biến shell shell ký hiệu đô la đặc biệt là gì?

  • $$1- pid của shell hiện tại (không phải subshell) theo sau 1.

  • $$2- pid của shell hiện tại (không phải subshell) theo sau 2.

  • $$a- pid của shell hiện tại (không phải subshell) theo sau là aký tự.

  • Và cứ thế ...

Xem đầu ra của echo $$1.

Và bạn gặp lỗi command not foundvì bạn đang cố thực thi một chuỗi gồm các chữ số rõ ràng không phải là một lệnh.


10

Bạn đã nối $$1cùng nhau để có được PID của shell hiện tại và 1, nghĩa là $$viết tắt của PID của shell hiện đang chạy và 1chỉ là một ký tự, bạn có thể làm $$a, $$@để có được PID được nối với ký tự sau.


6

$$ nó sẽ tuyên bố 1930đó là pid của vỏ hiện tại.

Khi bạn gõ $$1có nghĩa là pid theo sau bởi vì vậy đầu ra của bạn sẽ là 19301.

Hãy thử $$2đầu ra sẽ là19302

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.