电脑技术学习

对话 UNIX: !$#@*%

dn001

  请记住,在 Unix 目录中,设备、符号链接和其他对象都是文件,所以上面的测试操作符适用于所有类型的文件。

  每个人都有自己的 shell 脚本编程风格。无论在测试语句中使用 [[ ]] 还是 [ ],上面的测试操作符的作用是相同的。本文使用 [[ ]]。清单 11 演示如何使用上面列出的几个测试操作符。

  清单 11. 使用测试操作符

#!/usr/bin/ksh
while true
do
 echo "nEnter file to check: c"
 read _FNAME
 if [[ ! -e "${_FNAME}" ]]
 then
  echo "Unable to find file '${_FNAME}'"
  continue
 fi
 if [[ -f "${_FNAME}" ]]
 then
  echo "${_FNAME} is a file."
 elif [[ -d "${_FNAME}" ]]
 then
  echo "${_FNAME} is a Directory."
 elif [[ -L "${_FNAME}" ]]
 then
  echo "${_FNAME} is a symbolic link."
 else
  echo "Unable to determine file type for '${_FNAME}'"
 fi
 [[ -r "${_FNAME}" ]] && echo "User ${USER} can read '${_FNAME}'"
 [[ -w "${_FNAME}" ]] && echo "User ${USER} can write to '${_FNAME}'"
 [[ -x "${_FNAME}" ]] && echo "User ${USER} can execute '${_FNAME}'"
 if [[ -s "${_FNAME}" ]]
 then
  echo "${_FNAME} is NOT empty."
 else
  echo "${_FNAME} is empty."
 fi
done

标签: