مؤتمر نزع السلاح لا يعمل عند إعادة توجيه الإخراج؟
سؤال
وهنا اللغز: هل يستطيع أحد أن يفسر لماذا فشل cd
عندما يتم إعادة توجيه الإخراج إلى أنبوب
ومنها مثلا:
james@machine:~$ cd /tmp # fine, no problem
james@machine:~$ cd /tmp | grep 'foo' # doesn't work
james@machine:~$ cd /tmp | tee -a output.log # doesn't work
james@machine:~$ cd /tmp >out.log # does work
والتحقق على OSX، أوبونتو وRHEL.
وأي أفكار؟
تعديل : ليبدو غريبا أنني الأنابيب إخراج cd
؟ والسبب هو أنه من وظيفة التفاف الأوامر قذيفة عشوائية مع إدخالات سجل والتعامل مع الإخراج.
المحلول
عند توجيه الإخراج، فإنه يولد عملية قذيفة الطفل، يغير الدليل في عملية طفل، والمخارج. عندما كنت لا توجيه الإخراج، فإنه لا تفرخ أي عملية جديدة لأنها بنيت في قيادة قذيفة.
لا تنتمي إلى StackOverflow