【发布时间】:2011-01-28 17:45:29
【问题描述】:
有没有更简单的方法来做到这一点?
#!/bin/ksh
THIS_SCRIPT=$(/usr/bin/readlink -f $(echo $0 | /bin/sed "s,^[^/],$PWD/&,"))
echo $THIS_SCRIPT
我一直在使用 ksh,但我更喜欢在 bash 中也可以使用的解决方案(我认为确实如此)。
【问题讨论】:
-
@Carl:不确定你的意思。 $0 是脚本的名称,但可以是绝对路径或相对路径。
-
你是对的 - 你只关心被执行的路径名。删除其他 cmets。
-
@Carl,实际上我认为您对硬链接有很好的看法。我没想到他们。
-
是的,不过这种情况很少见。对于您正在寻找的目的,它们并不重要,对吧?任何一个好的路径都可以,特别是正在执行的路径名将通过您的检查找到,所以应该是好的。