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

  • DeAdPiXel6667

    DeAdPiXel666

    2 Ocak 2010
  • GUN-TIME with Brandon

    GUN-TIME wit

    3 ŞUBAT 2009
  • PaysNatalAu's channel

    PaysNatalAu'

    11 Aralık 2010