Bash'ta $$ 1'in anlamı nedir?


27

Ben aslında argümanlarla oynuyorum ve oldu. Sadece yazarsam ve ne yapıp $$1aşağıdan bir şey alırsam ne olacağını görmek isterdim

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

Bu 19301'in anlamı, bir şey mi söylüyor?

Bottom-Line: $$1bash için ne anlama geliyor ?


1
ah !! bu çok kolay bir şey. Hala öğrenmem gereken çok şey var. Tüm cevaplar süper. Herkese +1.
rʒɑdʒɑ

Yanıtlar:


27

$$ geçerli işlemin PID'si (işlem kimliği).

$$1yukarıdaki PID'nin ardından değişmez dizgedir 1.

Bu yüzden size, bashPID 1930 ile olan sürecin olduğunu söylüyor

Ama ... bedava numara:

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

(oldukça kıvrımlı, değil mi?)

TLDP hakkında daha fazla bilgi .



1
Bir an için TLDP'yi "Çok Uzun İşemedi" olarak okudum.
Luis Alvarado,

13
  • $$- geçerli kabuğun pid'i (alt kabuk değil) - bkz . Özel dolar işareti kabuk değişkenleri nelerdir?

  • $$1- Geçerli kabuğun (alt kabuk değil) pid'i ardından 1.

  • $$2- Geçerli kabuğun (alt kabuk değil) pid'i ardından 2.

  • $$a- Geçerli kabuğun (alt kabuk değil) pid'i ardından akarakter.

  • Ve bunun gibi...

Çıktısına bakınız echo $$1.

Ve hatayı alırsınız, command not foundçünkü açıkça bir komut olmayan rakamlardan oluşan bir dize çalıştırmaya çalışıyorsunuz.


10

Sen birleştirilmiş olması $$ve 1birlikte geçerli kabuğun PıD'YI almak için ve 1yani $$o anda çalışan kabuğun PID anlamına gelir ve 1sadece bir karakter, Yapabileceğiniz olduğunu $$a, $$@PID aşağıdaki karakteri ile birleştirilmiş olsun.


6

$$ o belirtecektir 1930olan pid akım kabuğun.

Bunu yazdığınızda $$1pid ardından bir tane gelir, böylece çıktı siz olur 19301.

$$2Çıktı olacak deneyin19302

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.