最近脚本工作正常,但是从某些日子我收到这样的消息,而运行readlink -f "$0"命令:
readlink: illegal option -- f usage: readlink [-n] [file ...]
我正在运行以下代码进行debugging:
#!/bin/sh DIR=`pwd` RLPATH=`which readlink` RLOUT=`readlink -f -- "${0}"` DIROUT=`dirname -- ${RLOUT}` echo "dir: ${DIR}" echo "path: ${PATH}" echo "path to readlink: ${RLPATH}" echo "readlink output: ${RLOUT}" echo "dirname output: ${DIROUT}"
输出:
# ./debug.sh readlink: illegal option -- f usage: readlink [-n] [file ...] usage: dirname string [...] dir: /home/svr path: /sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/root/bin path to readlink: /usr/bin/readlink readlink output: dirname output:
哪里不对 ?
这是你正在运行的FreeBSD版本的一个问题。 旧版本不支持-f选项。
解决这个问题的最简单的方法是使用GNU coreutils端口(/ usr / ports / sysutils / coreutils),它会给你“greadlink”。 这是我在脚本中使用的。