บรรทัดเอาต์พุตพิเศษเหล่านี้มีอะไรบ้างใน bash?


9

สำหรับบางครั้งที่บรรทัดเหล่านี้สามารถเห็นได้หลังจากรันคำสั่ง (แบบสุ่ม):

[1]-  Done                    wget -c http://downloads.sourceforge.net/project/zorin-os/9/zorin-os-9-core-32.iso?r=http%3A%2F%2Fzorinos.com%2Fdownload9.html
[2]+  Done                    ts=1460659842

บรรทัดแรกคือคำสั่งและมันไม่ได้เกิดขึ้นเสมอไป แต่บางครั้งแอพบรรทัดคำสั่งจะหยุดโดยไม่กลับไปที่บรรทัดรับคำสั่งจนกว่าฉันจะกด Enter; ซึ่งแสดงบรรทัดเหล่านี้

ระบบของฉันไม่ทำงานเช่นนี้จนกระทั่งหนึ่งสัปดาห์ที่ผ่านมา นี่เป็นปัญหาหรือไม่?

คำตอบ:


20

คุณอาจได้รับคำสั่งเช่นนี้:

wget -c http://downloads.sourceforge.net/project/zorin-os/9/zorin-os-9-core-32.iso?r=http%3A%2F%2Fzorinos.com%2Fdownload9.html&ts=1460659842&something-else

คำสั่งที่มีอักขระพิเศษ&ซึ่งจะใช้ในการเรียกใช้กระบวนการหลายควบคู่กันไป คำสั่งนั้นกำลังถูกตีความว่าเป็นสามคำสั่ง (หรือมากกว่า):

# First command (the one that you see after [1]):
wget -c http://downloads.sourceforge.net/project/zorin-os/9/zorin-os-9-core-32.iso?r=http%3A%2F%2Fzorinos.com%2Fdownload9.html
# Second command (the one that you see after [2]):
ts=1460659842
# Third command (the one which output should be above the "Done" lines):
something-else

นี่คือตัวอย่างที่อาจช่วยให้คุณเข้าใจดีขึ้น:

# Here I'm launching three 'echo' commands, the first two in background, the third in foreground
andrea@andrea-laptop:~$ echo first & echo second & echo third
[1] 5033    # This is bash telling me that the first process was started with job number 1 and PID 5033
first       # This is the output from the first process
[2] 5034    # This is bash telling me that the second process was started with job number 2 and PID 5034
third       # This is the output from the third process
second      # This is the output from the second process
andrea@andrea-laptop:~$ 
[1]-  Done                    echo first    # This is bash telling me that the first background job has quit
[2]+  Done                    echo second   # This is bash telling me that the second background job has quit

คุณควรอ้าง URL อย่างถูกต้องเพื่อหลีกเลี่ยงปัญหานี้และสิ่งที่น่ารังเกียจอื่น ๆ :

wget -c 'http://downloads.sourceforge.net/project/zorin-os/9/zorin-os-9-core-32.iso?r=http%3A%2F%2Fzorinos.com%2Fdownload9.html&ts=1460659842&something-else'

6
อีกเหตุผลหนึ่งที่คุณไม่ควรใช้คำสั่งเทอร์มินัลลอกเลียนแบบสุ่มสี่สุ่มห้า ... ใครบางคนอาจสร้าง url someurl.com/index.php&malicious-command-hereและผู้คนจะเรียกใช้และทำลายระบบของพวกเขา
Nzall
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.