iOS快捷指令:执行Python脚本(利用iSH Shell)
前言
iOS快捷指令所能做的操作极为有限。假如快捷指令能运行Python程序,那么可操作空间就瞬间变大了。iSH是一款免费的iOS软件,它模拟了一个类似Linux的命令行解释器。我们将在iSH中运行Python程序,然后在快捷指令中获取Python程序的输出。
核心逻辑
我们用一个“获取当前日期”的Python程序作为演示(其实快捷指令中本身存在“获取当前日期”的操作,因而此需求可以不用Python,这里仅仅为了演示方便),核心代码如下。
>>> import time>>> time.strftime('%Y-%m-%d', time.localtime(time.time()))'2023-02-06'
快捷指令的逻辑如下:
- 打开iSH。
- iSH启动后,自动运行我们指定的Python程序,并且自动运行一个HTTP服务器。
- Python程序的输出会保存在一个指定的文件中。快捷指令连接上述服务器,获取Python程序的输出。
因此iSH的Python脚本内容为:
import timecurr_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 --versionPython 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 ~/.ashrcfi
再创建.ashrc
文件。
设备名称:~# vi .ashrc
写入以下内容。
python3 get_date.py &python3 -m http.server &
其中每行后面的&
表示在后台运行。
这样我们就完成了iSH的配置。
测试效果
关闭iSH,然后重新打开,我们发现默认目录下出现了date.txt
文件。
设备名称:~# lsdate.txt...
查看该文件。
设备名称:~# cat date.txt2023-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 -
快捷指令
逻辑已经很清晰了,直接上图片。
来源地址:https://blog.csdn.net/Qmj2333333/article/details/128910249
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341