Closed cgkings closed 4 years ago
因为我这个就是一键脚本,通过BOT想把这个操作彻底摆脱输入命令行
你可以使用自定义命令菜单功能实现这个功能。 用settings里的SC_MENU_ITEM_ROWS设置命令参数。
script
目录下创建一个自定义命令脚本xx.sh,把需要执行的命令都放进去。
#!/bin/sh
/run cd /root
/run ./gd.sh
chmod +x xx.sh
将脚本设置为可执行。('脚本说明', 'xx.sh', True),
/run 会提示没有权限,而如果脚本设置为:
cd /root ./gd.sh bot发出命令,好长时间,没反应,task看有进程,但是直到VPS关了bot,bot才显示出来运行了脚本,vps也有了记录,在此之前一点反应都没有
默认只会显示命令前3秒的输出内容。
如果需要将所有输出显示出来需要在命令前面加个 oa;
。
比如: ('脚本说明', 'oa;xx.sh', True),
@vicalloy 不好意思,还得麻烦你: 已经改过了:('运行gd.sh', 'oa;gdbot.sh', True),但是“点击运行gd.sh“还是没反应, 在bot上面输入/task,显示这个命令还在后台,kill id,显示killed: /root/telegram-shell-bot/scripts/gdbot.sh,但是再输入/tasks,显示14653, /root/telegram-shell-bot/scripts/gdbot.sh,说明根本没关闭该进程, 在VPS上,ctrl+c关闭该BOT,VPS显示^C2020-05-20 22:45:09,785 - telegram.ext.updater - INFO - Received signal 2 (SIGINT), stopping...,然后BOT上突然又弹出我gd.sh的第一句对话框提示请输入分享链接,真的没办法,本来用BOT就是想随身简化操作的
你需要同命令行进行交互? 这个bot是无法做到同控制台进行交互的。 你可以在控制台下直接运行gdbot.sh,看是否可以正常输出。
你的原始脚本里有/run
,/run
这应当也是一个脚本吧,我猜这个脚本帮你处理了一些命令行交互的工作。
如果/run
提示没有权限,你需要确认一下你的脚本是否需要root权限才能运行。
如果需要root权限,你需要用root权限来跑这个bot。
开启root权限可能给系统带来风险,如果只是为了执行这个脚本,建议把 ONLY_SHORTCUT_CMD
设置成True,关闭除快捷命令外的命令行交互。
我有个脚本,在我VPS的/root/gd.sh,在finalshell里面默认的root目录下使用./gd.sh可以调用它,但是,我朋友说TG上的shell bot上是无法设置快捷命令,比如通过点击/直接调用这个脚本,而必须手打2个命令才能调用: 1、/run cd /root 2、/run ./gd.sh 请问,您这个bot可以帮我实现点击/出来自定义命令,点击该自定义命令,直接调用这个脚本吗?