เรามีenv (1)เพื่อแก้ไขสภาพแวดล้อมของคำสั่งที่เราต้องการเรียกใช้ (ตัวอย่างenv MANPAGER=more man dtrace
) มีสิ่งที่คล้ายกัน แต่สำหรับการปรับเปลี่ยนไดเรกทอรีที่คำสั่งจะเริ่มต้นใน
เป็นการดีที่ฉันต้องการให้มีลักษณะเช่นนี้:
theMagicCommand /new/cwd myProgram
วิธีนี้มันอาจจะ "ถูกล่ามโซ่" กับคำสั่ง env (1) เหมือนอื่น ๆ เช่น
daemon -p /tmp/pid env VAR=value theMagicCommand /new/cwd myProgram
จนถึงตอนนี้ฉันสามารถคิดถึงวิธีแก้ปัญหาต่อไปนี้ซึ่งน่าเสียดายที่ไม่มีอินเตอร์เฟสเหมือนกับ env (1):
cd /new/cwd && myProgram
นอกจากนี้ฉันสามารถสร้างเชลล์สคริปต์อย่างง่ายเช่นนี้:
#! /bin/sh -
cd "${1:?Missing the new working directory}" || exit 1
shift
exec "${@:?Missing the command to run}"
แต่ฉันกำลังมองหาบางอย่างที่มีอยู่แล้ว (อย่างน้อยใน macOS และ FreeBSD)
myProgram
ไม่จำเป็นต้องเป็นแอปพลิเคชันเดสก์ท็อป (ในกรณีนี้ฉันสามารถใช้ปุ่มPathในไฟล์ . desktop )
env
อธิบายว่าที่ไม่ได้เป็นอินเตอร์เฟซเดียวกับ env
ดูที่ เปรียบเทียบกับrtprio
, idprio
, numactl
, jexec
, chrt
และแน่นอนคำสั่งใน toolsets ที่ระบุไว้ในคำตอบที่ มีรูปแบบและมันคือการโหลดโซ่
(cd the/cwd; cmd)
?
(cd the/cwd; cmd)
ไปยัง env (1) ได้โดยง่ายโดยไม่ต้องใช้คำสั่ง sh (1)
cd /new/cwd && env VAR=value myProgram
ไม่พบ critera ของคุณ?