Ne yapmaya çalıştığınızı doğru anlarsam, bu sudo
komutu betiğe ekleyip, betiğin orada çalıştığında şifrenizi sormasını mı bekliyorsunuz? Bu durumda, işleri karmaşık bir şekilde yapıyorsunuz.
Daha temiz bir çözüm, komut dosyasını her zamanki gibi (yani olmadan sudo
) yazmak ve süper kullanıcı olarak çalıştırmaktır . Bunun arkasındaki neden, komut dosyası süper kullanıcı erişimine ihtiyaç duyuyorsa, o zaman sadece erişim izni verin (neden belirli bir komuta kadar beklemelisiniz?). Kodda, root olarak çalıştırılıp çalıştırılmadığını kontrol etmek için şöyle bir şey yapın:
if [ "$(id -u)" != "0" ]; then
echo "This script must be run as root" 1>&2
exit 1
fi
/dev/null
- sudoing yapıyorsunuz çünküdd
yazma erişimi gerekiyor/dev/r$temp1
(Sanırım). Çıktısını nasıl bastırdığınız önemli değil, bunu yapmanız gerekecekdd
; Çıktının yeniden yönlendirilmesi/dev/null
root gerektirmiyor