回答
沒有內置功能來做到這一點。我能想到的唯一方法是(ab)使用postcmd
特殊別名。此別名將在每條命令後運行:
set _lineno = 0
alias postcmd '@ _lineno++ && echo -n $_lineno\ '
echo a
echo b
echo c && echo d
輸出:
% csh test.csh
1 2 a
3 b
4 c
d
不幸的是,這將雜亂的-x
輸出:
% csh -x test.csh
set _lineno = 0
alias postcmd @ _lineno++ && echo -n $_lineno\
@ _lineno++
echo -n 1
1 @ _lineno++
echo -n 2
2 echo a
a
@ _lineno++
echo -n 3
3 echo b
b
@ _lineno++
echo -n 4
4 echo c
c
echo d
d
,我們可以排序的篩選器與grep
:
% csh -x test.tcsh | & grep -Ev '^(@ _lineno|echo -n [[:digit:]]+)
set _lineno = 0
alias postcmd @ _lineno++ && echo -n $_lineno\
1 @ _lineno++
2 echo a
a
3 echo b
b
4 echo c
c
echo d
d
所有這一切都是不完美的,並且甚至可能不會有大的腳本很好地工作......
正如你問了一些csh
相關的問題在過去的幾天:
雖然tcsh
可以很好地作爲交互式shell運行,tcsh
或csh
通常不太適合腳本任務。有很多東西遺漏,不完整,或者只是以一種「奇怪」的方式表現。甚至更多更多與POSIX的正常shell腳本相比更醜陋(而且這是很多的說法)。除非你有充分的理由不要(例如維護現有的腳本),否則你現在可能應該放棄csh
,並且可以使用「真正的」編程語言(Python,Ruby,Perl,或其他)。或使用/bin/sh
,bash
或zsh
。
是的,你是對的,它不適用於大型的csh腳本。我堅持使用csh的理由是我現有的產品。所以沒有選擇,只能承受這種痛苦。 – dcds
@Dharmendra好吧,只是想明確:-)我感覺對你而言;-)也許你可以破解這個使它工作(不知道是什麼問題?)... – Carpetsmoker
在tcsh,postcmd運行之前一個命令,而不是之後(因爲,原因???)不像zsh那裏它直觀地正確。而在tcsh中,precmd在命令之後運行(但在下一個提示符之前,這就是爲什麼我假定它被命名爲這種奇怪的方式) – DVK
- 1. 如何使用.csh腳本的命令行參數執行.csh腳本
- 2. 執行PHP腳本時顯示結果
- 3. 如何在顯示繪圖/圖時繼續執行python腳本?
- 4. 當執行shell腳本時,如何知道它正在執行哪個行號,
- 5. 如何.csh腳本
- 6. 從csh腳本運行本地可執行文件時找不到命令
- 7. 如何在腳本運行時啓用執行腳本?
- 8. 如何從sh腳本運行csh腳本
- 9. 如何從tcl腳本運行csh腳本?
- 10. 執行腳本時跳過&符號
- 11. qsub正在csh中執行我的bash腳本儘管shebang
- 12. 如何在HTML顯示腳本標籤,而不是執行它
- 13. Expect腳本未在控制檯上顯示腳本執行
- 14. 如何在顯示ProgressBar時執行方法,然後在顯示Form後執行?
- 15. 腳本仍在執行時顯示結果
- 16. 在執行腳本期間顯示時鐘
- 17. 如何在執行sql腳本時回顯打印語句
- 18. 如何從CSH腳本
- 19. 用雙引號執行任何腳本
- 20. 如何在執行的CSScript中顯示stacktrace的行號?
- 21. 通過命令行選項CSH腳本
- 22. csh腳本找不到可執行文件
- 23. 如何執行Java腳本
- 24. 如何PHP腳本執行
- 25. 如何查看執行腳本時執行的命令?
- 26. 如何讓Python腳本在執行後運行powershell腳本
- 27. 在運行csh腳本時讓python輸入密碼
- 28. CSH環境變量執行
- 29. Shell腳本在執行時不會執行任何操作
- 30. 如何在執行時顯示ContextMenu帶下劃線的文本?
Google對於「Csh認爲有害」 –
@BasileStarynkevitch Google對於「維護遺留代碼」 – Carpetsmoker