ฉันสามารถ "ส่งออก" นามแฝงไปยัง SHELL ที่เรียกใช้สคริปต์ได้หรือไม่


14

ฉันพยายามเขียนสคริปต์อรรถประโยชน์ที่กำหนดนามแฝงบางอย่าง
My SHELL คือtcsh(ไม่สามารถเปลี่ยนแปลงได้)

ฉันพยายามต่อไปนี้

#!/bin/tcsh  
alias log 'less ~/logs/log.`date '+%Y%m%d'`''

จากนั้นฉันก็รันแบบนี้:

./myscript  
log

ผลลัพธ์ที่ฉันได้รับคือ: log: Command not found.

โดยธรรมชาติถ้าฉันเรียกใช้เช่นนี้:

source myscript  
log

ทุกอย่างปกติดี.

วิธีใดที่จะทำได้โดยไม่ต้องระบุsource ...?


คุณใส่aliasใน~/.cshrcไฟล์ของคุณ?
qweet

@qweet - นั่นไม่ใช่เป้าหมายของฉัน - ฉันต้องการบางสิ่งบางอย่างแบบไดนามิก
RonK

คำตอบ:


18

คุณทำไม่ได้ โดยการเรียกใช้สคริปต์ของคุณคุณรันเชลล์ใหม่ กระบวนการปกครองจะไม่เห็นนามแฝง

วิธีเดียวที่ชี้ให้เห็นคือการใช้sourceเพื่อให้เชลล์ปัจจุบันประมวลผลไฟล์สคริปต์ของคุณ (โดยไม่ต้องเริ่มกระบวนการใหม่)


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