日期:2014-05-16  浏览次数:20546 次

Linux shell脚本全面学习6
# input check:
  if [ -z "$1" ] ; then
  error "ERROR: you must specify a file, use -h for help"
  fi
  filen="$1"
  # rename any .1 , .2 etc file:
  for n in 9 8 7 6 5 4 3 2 1; do
  if [ -f "$filen.$n" ]; then
  p=`expr $n + 1`
  echo "mv $filen.$n $filen.$p"
  mv $filen.$n $filen.$p
  fi
  done
  # rename the original file:
  if [ -f "$filen" ]; then
  echo "mv $filen $filen.1"
  mv $filen $filen.1
  fi
  echo touch $filen
  touch $filen
  这个脚本是如何工作的呢?在检测用户提供了一个文件名以后,我们进行一个9到1的循环。文件9被命名为10,文件8重命名为9等等。循环完成之后,我们将原始文件命名为文件1同时建立一个与原始文件同名的空文件。
  调试
  最简单的调试命令当然是使用echo命令。您可以使用echo在任何怀疑出错的地方打印任何变量值。这也是绝大多数的shell程序员要花费80%的时间来调试程序的原因。Shell程序的好处在于不需要重新编译,插入一个echo命令也不需要多少时间。
  shell也有一个真实的调试模式。如果在脚本"strangescript" 中有错误,您可以这样来进行调试:
  sh -x strangescript
  这将执行该脚本并显示所有变量的值。
  shell还有一个不需要执行脚本只是检查语法的模式。可以这样使用:
  sh -n your_script
  这将返回所有语法错误。