ฉันได้รับข้อความนี้เมื่อฉันคัดลอกไฟล์โดยใช้ SCP "stdin: is not a tty"
ไปยังเซิร์ฟเวอร์ มันทำให้ฉันหายไปได้อย่างไร? การถ่ายโอนก็โอเค
ฉันได้รับข้อความนี้เมื่อฉันคัดลอกไฟล์โดยใช้ SCP "stdin: is not a tty"
ไปยังเซิร์ฟเวอร์ มันทำให้ฉันหายไปได้อย่างไร? การถ่ายโอนก็โอเค
คำตอบ:
อาจเป็นเพราะ/etc/bashrc
สคริปต์พยายามเรียกใช้ stty และ stdin ไม่ใช่ tty
คุณควรตรวจสอบให้แน่ใจว่าสคริปต์การเข้าสู่ระบบของคุณออกก่อนเวลาเมื่อมีการใช้งานในลักษณะที่ไม่โต้ตอบ
ในไวยากรณ์ csh สิ่งนี้มักจะทำโดยการเพิ่มสิ่งนี้ในสคริปต์การเข้าสู่ระบบของคุณ (ก่อนหน้าคำสั่งเช่นstty
นั้นจะมีประโยชน์สำหรับเซสชันแบบโต้ตอบเท่านั้น):
if ( ! $?USER || "$prompt" == "" || ! $?term ) then
exit
endif
สิ่งเดียวกันสามารถทำได้ในการทุบตีโดยการเพิ่มต่อไปนี้ที่จุดเริ่มต้นของ.bashrc
:
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac