SORU
16 EYLÜL 2008, Salı


Nedir $$ kabuğunda?

Bir keresinde geçici dosyaları için bir kabuk benzersiz bir dosya adı elde etmenin bir yolu çift dolar işareti ($$) kullanmak olduğunu okuyacaksınız. Bu zaman zaman değişen bir sayı üretir... ama eğer tekrar tekrar çağırırsanız, aynı sayıda döner. (Çözüm sadece zaman kullanmak için.)

$$ aslında ne olduğunu ve benzersiz dosya adları oluşturmak için bir yol olarak önerilen olurdu neden olduğunu merak ediyorum.

CEVAP
17 EYLÜL 2008, ÇARŞAMBA


$$ bash işlemi (PID) kimliğidir. $$ kullanarak genellikle, bir yarış durumu oluşturmak ve kabuk betiği eğer bir saldırgan tarafından altüst olmasını sağlayacaktır, çünkü kötü bir fikir değil. Bakın, örneğin, güvensiz geçici dosya oluşturulur ve güvenlik uyarılarının sorunu vardı these people.

Bunun yerine, mktemp kullanın. Linux man page for mktemp mükemmel. İşte bazı örnek kod:

tempfoo=`basename $0`
TMPFILE=`mktemp -t ${tempfoo}` || exit 1
echo "program output" >> $TMPFILE

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • sWooZie

    sWooZie

    9 ŞUBAT 2006
  • WK

    WK

    9 Ocak 2006
  • xXGAMERrs_Xx

    xXGAMERrs_Xx

    31 Temmuz 2014