【问题标题】:MAC : bash script which invokes a Python script , both these scripts are in the same directoryMAC:调用 Python 脚本的 bash 脚本,这两个脚本都在同一个目录中
【发布时间】:2016-08-04 08:47:26
【问题描述】:

我在 MAC 中编写了一个 bash 脚本,该脚本位于 xyz 目录中。 现在我在同一个目录 xyz 中有一个 python 文件

我们也可以说这个python脚本永远在这个bash脚本所在的目录中

所以我希望这个 bash 脚本是通用的

/Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5 /Users/labuser/Desktop/Installer/OpenURL_GenericNotification.py 一些参数

所以我想替换 /用户/labuser/桌面/安装程序/ 这样无论在何处运行此脚本,python 脚本都会由一些系统变量(如 $cd)自动计算 /Users/labuser/Desktop/Installer/ 这就像 Windows 中的 $cd 不知道在 MAC 中如何 有什么关于如何处理这个脚本的 cmet 吗??

【问题讨论】:

  • 为什么特别是python 3.5?如果用户只安装了 2.7 怎么办?如果所有脚本都在调用 python 脚本,那么它根本没有增加任何价值。
  • Reason Being,我编写的脚本,有一些 Python 2.7 http.client 无法使用的导入

标签: python bash macos shell


【解决方案1】:

在 Bash 脚本中,脚本的路径存储在 $0 变量中。

dirname 命令返回路径的目录部分(文件名已删除)。

您可以使用dirname$0 来获取脚本的基本目录,并使用cd 获取该路径,然后在当前目录中运行Python 脚本:

cd "$(dirname "$0")"

./OpenURL_GenericNotification.py

【讨论】:

    猜你喜欢
    • 2019-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-20
    • 2019-05-25
    相关资源
    最近更新 更多