当前位置: 首页 > 面试题库 >

我如何知道Bash脚本中的脚本文件名?

李兴安
2023-03-14
问题内容

如何确定脚本本身内部的Bash脚本文件的名称?

就像我的脚本在文件中一样runme.sh,那么我如何在不进行硬编码的情况下显示“您正在运行runme.sh”消息呢?


问题答案:
me=`basename "$0"`

要通读通常不是您想要的符号链接1(您通常不希望这样使用户感到困惑),请尝试:

me="$(basename "$(test -L "$0" && readlink "$0" || echo "$0")")"

海事组织,这将产生令人困惑的输出。“我运行了foo.sh,但这是说我正在运行bar.sh !?一定是bug!”
此外,具有不同名称的符号链接的目的之一是根据它的名称提供不同的功能(在某些平台上可以考虑一下gzip和gunzip)。

1也就是说,要解析符号链接,以便在用户执行时foo.sh实际上是指向的符号链接bar.sh,您希望使用解析的名称bar.sh而不是foo.sh



 类似资料:
  • 我正在使用两个版本的ROS,彼此相邻。要使用它,我必须为特定版本提供一些环境变量。我想创建一个脚本来实现这一点。但是如果我创建一个如下的脚本,变量没有设置,它们可能是在子shell中设置的。如何将文件源文件发送到主终端外壳? source.sh: 以下是我如何调用source。上海: 更新:通过采购来源。正如答案中所建议的那样,我现在可以看到正在设置的变量。

  • 问题内容: 我很确定答案是否定的,但是我想我还是会问。 如果我的站点引用了名为“ whatever.js”的脚本,是否可以从该脚本中获取“ whatever.js”?喜欢: 麻烦多于依赖检查所值得的,但是这真是麻烦。 问题答案: var scripts = document.getElementsByTagName(‘script’); var lastScript = scripts[scrip

  • 我试图从一个简单的BASH脚本执行一个简单的PHP脚本。这个网站上的答案不能回答我的问题。 这是我的BASH脚本 这是我的PHP脚本 从命令行运行BASH脚本时,出现以下错误。 我试过键入/usr/bin/php-q/home/username/subfolder/durable2。这很好。它跑起来了

  • 问题内容: 我是bash的新手,但我一直想尝试取消以下命令: 如果我已连接到互联网,则此条件返回true。我希望它以相反的方式发生,但是放在任何地方似乎都行不通。 问题答案: 您可以选择: 分别反转以下表达式的返回值。

  • 问题内容: 谁能推荐一种安全的解决方案,从给定的根目录开始,用文件名和目录名中的下划线递归替换空格?例如: 变成: 问题答案: 使用(aka )这是一个Perl脚本,可能已经在您的系统上。分两个步骤进行: 基于 Jürgen的 回答,并且能够使用(Perl脚本)的“ Revision 1.5 1998/12/18 16:16:31 rmb1”版本在一个绑定中处理多层文件和目录:

  • 问题内容: 我正在尝试制作应该像这样使用的shell脚本: 然后,脚本将ocr将图像文件转换为文本文件。到目前为止,这是我想出的: 但是我不知道如何获得和价值观。关于如何做的任何想法? 问题答案: 您提供给bashscript的参数将出现在变量中,并且数字代表该参数。是命令本身。 参数由空格分隔,因此,如果在命令中提供和,它们也将以这些变量结尾,因此: 你会得到: 省略和可能更容易,例如: 然后您