将程序进度输出到STDERR时,大写和标点符号的最佳实践是什么?

时间:2011-01-17 17:24:27

标签: shell unix command-line

我正在制作一些命令行工具,当它运行到STDERR时输出进度信息,比如

found document
using cached version
analyzing

etc.

我应该输出带有大写首字母和句号的完整句子,还是这种简洁的非资本化输出?对此有何专家共识?

1 个答案:

答案 0 :(得分:1)

我最喜欢的表示进步的方法是'旋转器'。这是我使用bash实现的。第一个参数是要跟踪的进程的PID,第二个参数是可选消息。 PID最容易通过$(pgrep <some_process_name>)

传递
#!/bin/bash

spinner() {
  [[ -n "$2" ]] && echo -n "$2 "

  if [[ ! $1 =~ ^[[:digit:]]+$ ]]; then
    return
  fi

  while [[ -d /proc/$1 ]]; do
    for c in '/' '-' '\' '|'; do
      printf "%c\b" "$c"
      sleep 0.1
    done
  done
  printf " \n"
}

du /usr > /dev/null 2>&1 & # Example program to monitor
spinner $(pgrep du) "Optional Message Here"