macos – 源代码Bash脚本中的$0不返回脚本名称

发布时间:2019-11-03 发布网站:大佬教程
大佬教程收集整理的这篇文章主要介绍了macos – 源代码Bash脚本中的$0不返回脚本名称大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
当我在运行 MacOSXv10.6.7(Snow Leopard)的Mac上的 Bash脚本中引用$0时,我得到了-bash,而不是脚本的名称.

我运行了this Stack Overflow question中描述的脚本:

#!/bin/bash

echo
echo '# arguments called with ($@) -->  '"$@"
echo '# $1 -------------------------->  '"$1"
echo '# $2 -------------------------->  '"$2"
echo '# path to me ($0) ------------->  '"$0"
echo '# parent path (${0%/*}) ------->  '"${0%/*}"
echo '# my name (${0##*/}) ---------->  '"${0##*/}"
echo

以下是:

> . show_parms.sh foo

# arguments called with ($@) -->  foo
# $1 -------------------------->  foo
# $2 -------------------------->
# path to me ($0) ------------->  -bash
# parent path (${0%/*}) ------->  -bash
# my name (${0##*/}) ---------->  -bash

有任何想法吗?

解决方法

这是有道理的,因为你正在寻找脚本
. show_parms.sh foo

而不是执行它

./show_parms.sh foo

如此answer to the same question中所述,您可以使用$BASH_SOURCE来了解从中获取命令的文件的名称.

大佬总结

以上是大佬教程为你收集整理的macos – 源代码Bash脚本中的$0不返回脚本名称全部内容,希望文章能够帮你解决macos – 源代码Bash脚本中的$0不返回脚本名称所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ群:277859234,请注明来意。