objective-c - 您如何引用打包在您的应用程序包中的 shell 脚本?

标签 objective-c xcode bash bundle app-bundle

给定两个脚本

foo.sh
bar.sh

复制到 /Contents/Resources 下的 .app 包中,其中 foo.sh

#!/bin/bash
. ./bar.sh
echo $1

确实得到了一个错误

No such file or directory

在脚本尝试获取 bar.sh

的那一行

有没有办法相对引用bar.sh

是否有另一种方法可以将一组 bash 脚本 bundle 在一个 .app 中?

最佳答案

你可以做的是:

  1. 获取存储实际运行脚本(您的 foo.sh)的完整路径和目录。见 https://stackoverflow.com/a/246128/3701456
  2. 使用 1 中的目录(或相对于该目录)调用或获取第二个脚本(您的 bar.sh)

简单示例:

$cat script2
#! /usr/bin/env bash
echo "Hello World, this is script2"

$cat script1
#! /usr/bin/env bash
echo "Hello World from script 1"
echo "Full script path: $BASH_SOURCE"
echo "extracted directory: $(dirname $BASH_SOURCE)"
echo "running script 2"
$(dirname $BASH_SOURCE)/script2 && echo "running script 2 successful" || echo "error running script 2"
echo "sourcing script 2"
source $(dirname $BASH_SOURCE)/script2 && echo "sourcing script 2 successful" || echo "error sourcing script 2"

测试:

$ls /tmp/test
script1  script2
$pwd
/home/michael
$/tmp/test/script1
Hello World from script 1
Full script path: /tmp/test/script1
extracted directory: /tmp/test
running script 2
Hello World, this is script2
running script 2 successful
sourcing script 2
Hello World, this is script2
sourcing script 2 successful

有关更多详细讨论,请参阅上面的链接......

关于objective-c - 您如何引用打包在您的应用程序包中的 shell 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24174297/

相关文章:

iOS 核心数据 - 严重的应用程序错误 - 尝试插入 nil - 不到 1%

iphone - 使用 xCode 5 构建 FFmpeg

iOS - 如何将自定义图像和 2 个表格添加到 UI View Controller

bash - 在新的 bash 中更改 bash 提示符

bash - 使用awk以svn日志的模式输出

ios - 找不到 -lobjc 的 xcode 库

iphone - 是否可以提供工具栏背景图片?

bash - OpenConnect 自动连接/重新连接脚本?

ios - 当我在一个 UIViewController 中有两个 UITableViews 时看不到单元格

ios - 如何用应用商店中的新版本替换 iOS 应用中预先填充的核心数据?