คำสั่งเพื่อแสดงพรอมต์คำสั่งของเชลล์


0

มีคำสั่งเชลล์เพื่อแสดงพร้อมท์คำสั่งหรือไม่

ฉันจะอธิบายสิ่งที่ฉันต้องการผ่านภาพประกอบด้านล่าง

เมื่อฉันรัน script.sh ฉันควรได้รับผลลัพธ์ต่อไปนี้

$sh script.sh
$                   /* command prompt and then print hi */
hi

script.sh ของฉันเป็นเช่นนี้

#! /bin/bash

<command to display the shell command prompt>
echo "hi"
exit 0

สิ่งที่รหัสที่ควรไปในสถานที่ของวงเล็บมุมเพื่อให้ได้ผลลัพธ์เช่นด้านบน

ขอบคุณ


คุณพยายามจะทำอะไร? 'echo $' จะพิมพ์ $ ตามตัวอักษร แต่นั่นคือสิ่งที่คุณหลังจาก?

$เป็นเพียงตัวอย่างของ propmt ฉันต้องการเชลล์ propmt ที่จะแสดงเหมือนเดิม
LinuxPenseur

คำตอบ:


2

ไม่มีวิธีที่จะทำพอร์ตได้อย่างที่คุณถามเพราะตัวแปร PS1 ถูกตั้งค่าเมื่อเชลล์เป็นแบบโต้ตอบเท่านั้นและควรเปลี่ยนเฉพาะในไฟล์ dot-rc หากตั้งค่าไว้แล้วเนื่องจาก "PS1 กำหนดไว้หรือไม่" เป็นการทดสอบแบบคลาสสิกสำหรับการอยู่ในเชลล์แบบโต้ตอบ

เลือกพรอมต์ที่คุณต้องการและใช้งาน คลาสสิก '$' สำหรับเชลล์สไตล์ bourne รวมถึง bash (ซึ่งเป็นค่าเริ่มต้นสำหรับ 'bash- $'), '>' สำหรับ tcsh, '%' สำหรับ zsh และ '#' ถ้ารูท

หากคุณกำลังพยายามถ่ายทอดสถานะเพื่อความมั่นคงให้เพียงแค่ "ใช้ '#' ถ้ารูตหรือ '$' อื่น ๆ


สวัสดีฟิลฉันไม่เข้าใจคุณตอบอย่างเต็มที่ คำตอบของคุณแก้ปัญหาของฉันได้ไหม ฉันไม่ต้องการเพียง$หรือ#จะแสดง ฉันต้องการที่จะแสดงคำสั่งเชลล์อีกครั้งเหมือนเดิมก่อนที่บรรทัดที่เหลืออยู่ในสคริปต์จะถูกประหารชีวิต
LinuxPenseur

ไม่ได้กำหนดพรอมต์คำสั่งเชลล์ไว้ในสคริปต์แบบโต้ตอบดังนั้นคุณจึงไม่สามารถทำได้ คุณอาจตั้งค่า PS1 จากนั้นไฟล์เริ่มต้นต้นทางหวังว่าจะได้รับการแทนที่ใด ๆ แต่สิ่งนี้อันตรายเพราะสิ่งที่ไม่เหมาะกับการตั้งค่าสคริปต์อาจถูกเรียกใช้เมื่อ "ตั้งค่า PS1" เป็นทางลัดสำหรับ ความคาดหวังมากมาย (เช่น stdin คือ tty)
Phil P

1
ดังนั้น: จะไม่มีพรอมต์คำสั่งในสคริปต์แบบโต้ตอบรวมทั้งคุณจะไม่สามารถรู้ได้ว่ามันจะเป็นอย่างไรถ้าคุณไม่ได้มีปฏิสัมพันธ์ ดังนั้นคุณจะต้องอธิบายว่าทำไมคุณถึงต้องการทำสิ่งใดก็ตามที่คุณกำลังทำอยู่เพื่อให้เราช่วยให้คุณบรรลุเป้าหมายได้ดียิ่งขึ้น
ฟิล P

+1 ถูกต้องคุณทำไม่ได้ PS1 ไม่ได้ถูกตั้งค่าเพราะหากสคริปต์ของคุณสามารถรับพรอมต์คำสั่งได้ง่ายคุณสามารถเลียนแบบ Bash เพื่อวัตถุประสงค์ที่ชั่วร้ายหรือที่เรียกว่าไวรัส Trojan Horse / มัลแวร์
Chris S

เอ่อไม่นั่นไม่ใช่เหตุผลที่ PS1 ไม่ได้ถูกตั้งค่า คนส่วนใหญ่จะใช้การกำหนดค่าสต็อกที่จัดหาจากผู้จำหน่ายระบบปฏิบัติการและดังนั้นจึงเป็นเรื่องง่ายพอที่จะคาดการณ์และหากมัลแวร์ได้มาถึงแล้วคุณก็เมาแล้ว
Phil P
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.