我发现自己无法在 cshell 脚本中制作简单的进度条,也无法输出换页。cshell完全不支持吗?(或 tcshell)?
是否有任何替代方法可以输出进度条(和进度的终点),以在进度迭代之间运行 shell 命令?
我可以改用 awk 吗?awk 对我来说很模糊。
您可以使用该printf
命令(不特定于 csh 或 tcsh)。要打印换页符 (ctl-L):
printf '\xc'
展示:
% printf '\xc' | od -c
0000000 \f
0000001
但是你确定换页是你想要的字符吗?它通常在兼容 VT-100 的终端仿真器中无效。
您可以使用 tcsh 的内置echotc
命令打印由 termcap 定义的任意控制字符序列。man tcsh
并搜索echotc
详情;man 5 termcap
查看由 . 识别的 2 字符代码echotc
。
更便携(对于 csh 和 tcsh 以外的 shell),作为包tput
的一部分的命令ncurses
类似于echotc
,但它使用 terminfo 功能名称而不是 termcap(尽管如果支持编译到包中,它也支持 termcap)。