Açıkladığınız şeyi yapacak tek bir yardımcı program düşünemiyorum, ancak bunu bir kabuk snippet'i yapmak için yeterince kolay.
script=$(curl -s "$url")
printf "%s\nDo you want to run this script? [yN]" "$script"
read line
case $line in
[Yy]|[Yy][Ee][Ss]) sh -c "$script";;
esac
Bu, komut dosyasının bir metin dosyası olduğunu varsayar. Boş baytlar desteklenmez: kabuğa bağlı olarak kaldırılabilir veya bir satırın veya tüm dosyanın kısaltılmasına neden olabilir. Ayrıca dosyanın sonundaki tüm yeni satırlar kaldırılır (heredoc yapısı bir geri ekler). Bu normalde bir komut dosyası için bir sorun değildir, ancak örneğin komut dosyasının ayıkladığı ikili biçimde bir arşivle bitmesi olabilir. Bu, bir dosyayı dağıtmanın çok güvenilir bir yolu değildir, çünkü böyle bir ikili komut dosyasının bir noktada yanlış kodlanması riski vardır. Bununla birlikte, komut dosyasını geçici bir dosyaya yazarak işleyebilirsiniz.
script_file=$(mktemp)
curl -s "$url" | tee "$script_file"
printf "Do you want to run this script? [yN]"
read line
case $line in
[Yy]|[Yy][Ee][Ss]) sh "$script_file";;
esac
rm "$script_file"
$()
ilk satırda alıntılanmalıdır. Ayrıca, girişteki NUL karakterlerini kaldırabilir ve bu da ölümcül olabilir (örneğin, kendi kendine ayıklanan bir komut dosyasında).