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

  • CommonArtisan

    CommonArtisa

    7 Temmuz 2012
  • WhtButterflyLiz

    WhtButterfly

    14 NİSAN 2008
  • wowchick16

    wowchick16

    17 Mart 2007