相关疑难解决方法(0)

从脚本本身获取Bash脚本的源目录

如何获取其中的目录路径的Bash脚本位于,里面那个脚本?

例如,假设我想使用Bash脚本作为另一个应用程序的启动器.我想将工作目录更改为Bash脚本所在的目录,因此我可以对该目录中的文件进行操作,如下所示:

$ ./application

directory bash

4672
推荐指数
44
解决办法
158万
查看次数

如何在Mac上获取GNU的readlink -f的行为?

在Linux上,该readlink实用程序接受一个-f跟随其他链接的选项.这似乎不适用于Mac和可能基于BSD的系统.相当于什么?

这是一些调试信息:

$ which readlink; readlink -f
/usr/bin/readlink
readlink: illegal option -f
usage: readlink [-n] [file ...]
Run Code Online (Sandbox Code Playgroud)

macos freebsd sh

341
推荐指数
13
解决办法
11万
查看次数

如何通过双击在OS X中运行shell脚本?

我有一个在OS X上具有用户执行权限的shell脚本,但是当我双击它时,它会在文本编辑器中打开.如何通过双击来运行它?

macos shell scripting desktop

219
推荐指数
6
解决办法
26万
查看次数

如何在POSIX中获取脚本目录?

我的bash脚本中有以下代码.现在我想在POSIX中使用它.那么如何转换呢?谢谢.

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" > /dev/null && pwd )"
Run Code Online (Sandbox Code Playgroud)

bash posix sh

47
推荐指数
1
解决办法
7299
查看次数

如何在MacOS上获取shell脚本的绝对路径名?

readlink -f在MacOS上不存在.我设法在网上找到的唯一可用的Mac OS解决方案是这样的:

if [[ $(echo $0 | awk '/^\//') == $0 ]]; then
    ABSPATH=$(dirname $0)
else
    ABSPATH=$PWD/$(dirname $0)
fi
Run Code Online (Sandbox Code Playgroud)

任何人都可以向这个看似微不足道的任务提出更优雅的建议吗?

macos bash shell sh

30
推荐指数
2
解决办法
3万
查看次数

如何识别脚本中是否使用了bash或破折号?

我正在编写bash脚本,在Ubuntu中使用“ sh”命令时会引发错误(似乎与破折号不兼容,我正在学习此主题)。因此,我想检测是否使用破折号而不是bash引发错误。

如何在脚本上下文中检测到它?可能吗?

bash dash-shell

4
推荐指数
2
解决办法
1926
查看次数

双击Mac上的shell脚本

我有一个运行jar文件的小脚本:

#!/bin/bash

prefix="foo";
name=`ls ${prefix}*.jar`;
echo $name;
java -jar $name prop1.properties prop2.properties
Run Code Online (Sandbox Code Playgroud)

当我使用./myscript.sh在终端中运行它时,它工作正常并且jar文件执行,但是当我在myscript.command中重命名并双击它时,我有这个错误:

ls: foo*.jar : No such file or directory
Run Code Online (Sandbox Code Playgroud)

我看到显然.command文件在根目录下打开一个终端,所以我尝试使用它找到包含myscript.command的目录:

dir = 'find <dir> -maxdepth 1 -type d -name '*myDirContainingJar*' -print -quit'
cd $dir
Run Code Online (Sandbox Code Playgroud)

但是dir只是空白,任何想法???

macos shell

3
推荐指数
1
解决办法
892
查看次数

标签 统计

bash ×4

macos ×4

sh ×3

shell ×3

dash-shell ×1

desktop ×1

directory ×1

freebsd ×1

posix ×1

scripting ×1