Echo สำหรับรหัสสถานะ?


-1

ฉันกำลังมองหาเครื่องมือที่ต้องการechoแต่สำหรับรหัสสถานะ

$ sts 120
$ echo $?
120

ฉันรู้ว่าคุณสามารถใช้เชลล์ย่อยในสภาพแวดล้อมที่เหมือนทุบตี:

$ (exit 120)
$ echo $?
120

แต่มีวิธีทำอย่างอิสระจากเปลือกของคุณหรือไม่


2
ฉันไม่แน่ใจว่าฉันเข้าใจคำถามคุณหมายความว่าคุณต้องการตัวแปรที่จะได้รับรหัสส่งคืนสำหรับคำสั่งบนเชลล์ใด ๆเช่น Bash, KSH, ... ?
nKn

@ nKn ฉันแค่อยากรู้ว่ามียูทิลิตี้ที่จะใช้ค่าเป็นอินพุตและออกด้วยค่านั้น นักวิชาการล้วนๆ
David Cowden

คำตอบ:


1

คุณสามารถทำสคริปต์ง่ายมากที่จะตรวจสอบว่าพารามิเตอร์จะถูกส่งและอื่น ๆ 0กลับมา

#!/bin/bash

if [ $# -eq 1 ]; then
  # There's no parameter
  exit 0
else
  exit $1
fi

ให้สิทธิ์ดำเนินการ ( chmod +x returnscript.sh) วิธีเรียกใช้สคริปต์ภายในสคริปต์อื่น:

วิธีที่ 1 :

/path/to/returnscript.sh 100
retcode=$?
# retcode = 100

วิธีที่ 2 :

/path/to/returnscript.sh
retcode=$?
# retcode = 0

ขอบคุณ ฉันแค่ถามว่ามียูทิลิตี้ที่ฉันไม่รู้หรือเปล่าว่ามียูทิลิตี้แปลก ๆ ออกมามากมายเช่นcowsayนั้น ฉันแค่อยากรู้อยากเห็นถ้ามีอยู่ที่ออกมาพร้อมกับค่าส่งคืนเป็นพารามิเตอร์ (= ฉันไม่เข้าใจว่าทำไมคนดูลงคำถามถ้าพวกเขาไม่เข้าใจว่าทำไมบางคนอาจถามพวกเขา ...
David Cowden

1
ฉันเกรงว่าจะไม่มีเครื่องมือเช่นนั้น แต่ก็สามารถสร้างได้ง่าย
nKn

0

ฉันไม่แน่ใจว่าฉันเข้าใจคำถาม ดูเหมือนว่าคุณกำลังมองหาคำสั่งที่มีสถานะการออกที่คุณสามารถระบุในบรรทัดคำสั่งโดยไม่ต้องใช้ฟังก์ชั่นที่สร้างไว้ในเชลล์ ทำไม? มีเปลือกบางส่วนที่(exit 120)ไม่ทำงาน?

นี่คือความเป็นไปได้บางอย่าง:

  • awk 'BEGIN {exit 120}'
  • echo | sed 'q120'
  • sh -c "exit 120"
  • exit "$1"เขียนสคริปต์ของคุณเองที่ไม่

ฉันแค่อยากรู้อยากเห็น .. ไม่มีเหตุผลเชิงปฏิบัติอื่นใดนอกจากต้องการทดสอบว่าbash -ebuiltin ทำงานอย่างไร
David Cowden

(exit 120)คุณสามารถดำเนินการได้อย่างสมบูรณ์แบบได้ดีกับ
สกอตต์

แน่นอนตามที่ระบุไว้ในคำถาม แต่นั่นไม่ใช่ประเด็นของคำถาม (;
David Cowden

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