iOS快捷指令:执行Python脚本(利用iSH Shell)

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

文章目录

前言

iOS快捷指令所能做的操作极为有限。假如快捷指令能运行Python程序那么可操作空间就瞬间变大了。iSH是一款免费的iOS软件它模拟了一个类似Linux的命令行解释器。我们将在iSH中运行Python程序然后在快捷指令中获取Python程序的输出。

核心逻辑

我们用一个“获取当前日期”的Python程序作为演示其实快捷指令中本身存在“获取当前日期”的操作因而此需求可以不用Python这里仅仅为了演示方便核心代码如下。

>>> import time
>>> time.strftime('%Y-%m-%d', time.localtime(time.time()))
'2023-02-06'

快捷指令的逻辑如下

  1. 打开iSH。
  2. iSH启动后自动运行我们指定的Python程序并且自动运行一个HTTP服务器。
  3. Python程序的输出会保存在一个指定的文件中。快捷指令连接上述服务器获取Python程序的输出。

因此iSH的Python脚本内容为

import time
curr_date = time.strftime('%Y-%m-%d', time.localtime(time.time()))
with open('date.txt', 'w') as f:
    f.write(curr_date)

配置iSH

安装Python

首先在AppStore里面搜索iSH Shell并安装。打开iSH输入以下命令来安装Python。

设备名称:~# apk add python3

测试一下是否安装成功。

设备名称:~# python3 --version
Python 3.8.5

创建Python脚本

在iSH中创建脚本的方法有很多这里介绍两种。

第一种是直接在iSH中手敲代码没用过vim的同学请自行百度学习。

设备名称:~# vi get_date.py

然后把上面的Python脚本内容输入进去保存并退出编辑界面。

第二种是在电脑中写好代码然后传给iSH。

以win10系统为例我在目录C:\tmp下写好了get_date.py然后打开cmd输入ipconfig查看电脑的IP找到“无线局域网适配器 WLAN”一栏中的IPv4地址。我电脑显示的IP地址是192.168.3.99。

将cmd切换到Python脚本所在的目录即C:\tmp然后在cmd中输入如下命令。

C:\tmp> python3 -m http.server

回到iSH安装wget。

设备名称:~# apk add wget

安装完成后就可以用wget来下载电脑中的文件了注意iOS设备必须和电脑在同一个局域网中。

设备名称:~# wget 192.168.3.99:8000/get_date.py

配置启动文件

iSH的命令行解释器是ash。与配置bash类似先创建.profile文件。

设备名称:~# vi .profile

写入以下内容。

if [ -f ~/.ashrc ]; then
   source ~/.ashrc
fi

再创建.ashrc文件。

设备名称:~# vi .ashrc

写入以下内容。

python3 get_date.py &
python3 -m http.server &

其中每行后面的&表示在后台运行。

这样我们就完成了iSH的配置。

测试效果

关闭iSH然后重新打开我们发现默认目录下出现了date.txt文件。

设备名称:~# ls
date.txt
...

查看该文件。

设备名称:~# cat date.txt
2023-02-06

在同一iOS设备上打开Safari浏览器在地址栏中输入127.0.0.1:8000/date.txt。若浏览器能打开链接并显示内容则配置成功。此时iSH中会有一行输出。

127.0.0.1 - - [06/Feb/2023 08:42:56] "GET /date.txt HTTP/1.1" 200 -

快捷指令

逻辑已经很清晰了直接上图片。

请添加图片描述

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: shellpython