Что происходит, когда вы пишете в / dev / null? В чем смысл? [дубликат]

clear
sum=0
i="y"

echo " Enter one no." 
read n1 
echo "Enter second no."
read n2

while[ $i = "y" ]
do 
echo "1.Addition" 
echo "2.Subtraction" 
echo "3.Multiplication" 
echo "4.Division" 

echo "Enter your choice" 
read ch 

case $ch in 
1)sum=`expr $n1 + $n2` 
   echo "Sum ="$sum;; 

2)sum=`expr $n1 - $n2` 
   echo "Sub = "$sum;; 

3)sum=`expr $n1 \* $n2` 
   echo "Mul = "$sum;; 

4)sum=`expr $n1 / $n2` 
    echo "Div = "$sum;; 

*)echo "Invalid choice";; 
esac 

echo "Do u want to continue ?" 
read i 
if [ $i != "y" ] then
      exit 
fi 
done 
0
06.03.2017, 21:42
1 ответ

Устройство null действует как черная дыра. Все, что в него записано, отбрасывается, и если вы попытаетесь прочитать из него, вы немедленно получите конец файла.

Он используется для отбрасывания нежелательного вывода и предоставления нулевого ввода.

Без этого было бы очень сложно отбросить нежелательный вывод. По сути, вам придется сохранить нежелательный вывод в файле, который вы затем удалили. Точно так же вам нужно будет создать пустой файл, чтобы обеспечить немедленный конец файла для процессов, которые вы не хотите, например, читать со стандартного ввода.

Наличие / dev / null предусмотрено стандартом POSIX и говорит, что это ...

Пустой источник данных и бесконечный приемник данных. Данные, записанные в / dev / null , должны быть отброшены. Чтение из / dev / null всегда должно возвращать конец файла (EOF).

Это одно из трех устройств под / dev , которые должны быть доступны в системе POSIX. Остальные - / dev / tty и / dev / console .

Ссылка: http://pubs.opengroup.org/onlinepubs/9699919799/toc.htm

6
28.01.2020, 02:16

Теги

Похожие вопросы