执行脚本失败
1. Crontab定时任务中python3脚本无法运行问题解决
背景:
XX集团电商化标准地址增量生成及上传功能为Python3脚本实现。上传脚本并编写执行shell后,手动执行shell能生成且上传成功,但将shell脚本添加到crontab后执行失败,失败原因日志无法打印。
解决:
排除脚本路径及文件权限导致问题可能性后,分析后原因为环境变量的问题:crontab执行脚本的时候不会读取用户的环境变量等配置,所以可能很多命令不能使用导致脚本执行失败;
1)查看用户环境变量-env,获取path路径:
2)将path放到shell导入,并进行环境初始化
3)添加crontab
大家如有遇到其他问题或者有更好解决思路,欢迎积极留言,共勉。
2. 为什么按键精灵脚本运行不了
这个界面是脚本编辑界面,你可以在右边脚本描述那里给它重新写个名字,然后点上面的按钮“保存退出”,就能保存脚本并退回到按键精灵主界面,在那里有脚本列表,找到你刚保存的脚本,看看你这个脚本前面“有效”那一栏是否有勾,没勾的话勾上,然后把需要用按键精灵的网页打开,点快捷键F10。
按键精灵脚本没问题按启动热键没反应是因为最后没有进行保存设置,步骤如下:
1、首先第一步就是进行打开按键精灵应用软件,进入按键精灵页面,在左方的选项中选择“我的脚本”,进入我的脚本浏览,找到需要更改的脚本列表,如下图所示。
2、然后就是进行找到需要更改快捷键设置的脚本文件,进入浏览,选定脚本文件后,这时候右键点击脚本名称,弹出操作列表即可。
3、然后就是进行在弹出的操作列表中,选择“属性”选项,系统会自动弹出属性窗口,进入脚本属性窗口,如下图所示。
4、接着就是进行在弹出的属性窗口中,这时候可以修改脚本名称和脚本文件名称,在下方点击“修改热键”,进入快捷键修改页面如下图所示。
5、接着就是在弹出的快捷键修改窗口中,找到“启动”对应的输入框,再把原始快捷键设置删除,接着按下需要设置的键盘按键,自动输入即可。
6、然后就是完成启动热键的设置输入后,点击“确认”,即可完成设置,回到脚本属性页面,如下图所示。
7、最后就是进行回到脚本属性窗口后,点击下方的“保存设置”按钮,即可对所有更改设置进行保存,保存完成后即完成快捷键的设置修改即可。
3. 按键精灵脚本运行初始化失败怎么办
1,按照脚本的信息进行设置他规定的分辨率,
2,脚本的时间过期了
3,程序主要文件, 被意外删除。
4,系统或杀毒名软件拦截。
解决方案
一:更新脚本时间
二:关闭杀毒软件
三:重新下载源文件
四:查看是否设置分辨率等其他问题是否解决
4. Windows下Shell脚本运行错误展示错误信息并停止向下执行
shell脚本运行完毕之后会直接关闭窗口,不便于开发者查看运行结果,这点可以通过 sleep 来实现暂停
新建脚本 demoshell
在命令窗口执行 demoshell.sh xxxxx ,会启动 shell 窗口 ,打印 params1= xxxxx 之后就会关闭窗口
想要不关闭窗口可以在脚本的最后添加 sleep 来实现。
例如
再次执行 demoshell.sh xxxxx ,执行完毕之后,窗口不会直接关闭,可以查看运行结果
shell脚本还有一个不好的地方就是中间的一个命令运行失败之后还会继续向下执行,这是一个很危险的行为,并且向下执行的时候会冲掉失败信息,无法根据错误提示来修改脚本。
接下来执行一个不存在的任务,让shell脚本运行失败
执行失败之后由于 sleep 100 ,可以看到错误提示,如果没有 sleep 100 存在,执行失败之后也是立马关闭了窗口,看不到错误信息;而命令执行成功之后需要关闭窗口的,那能不能想办法做到两者兼顾呢?
答案是肯定的,原理就是判断命令执行状态,只有在命令执行失败的时候,触发sleep行为,阻塞命令向下运行
去掉 sleep 100 ,运行脚本,捕获到失败信息,显示错误信息,并停止向下执行
注释掉 ./gradlew :app:emptyTask -x lint ;
再次运行脚本,运行成功,直接就关闭了窗口
5. 解决Win10系统脚本无法正常运行,因为在此系统上禁止运行脚本
法 加 载 文 件 D:PythondemovenvScriptsactivate.ps1, 因 为 在 此 系 统上禁止运行脚本
首先我们需要打开powerShell用管理员方式打开,这样可以确保你输入的代码能够有足够的权限然后输入
get-ExecutionPolicy点击回车
下面会出现Restricted点击回车
在输入set-ExEcutionPolicy RemoteSigned会弹出
执行策略更改
执行策略可帮助你防止执行不当的脚本。更改执行策略可能会产生安全风险,比如 https:/go.microsoft.com/fwlink/?LinkID=135170
中的 about_Execution_Policies 帮助主题所述。是否要更改执行策略呢?
[Y] 是(Y) [A] 全是(A) [N] 否(N) [L] 全否(L) [S] 暂停(S) [?] 帮助 (默认值为“N”): Y
选择Y就可以了
6. 电脑老是提示运行脚本错误怎么解决
脚本scripq是使用一种特定的描述性语言,依据一定的格式编写的可执行文件,又称作宏或批处理文件。脚本通常可以由应用程序临时调用并执行。各类脚本目前被广泛地应用于网页设计中,因为脚本不仅可以减小网页的规模和提高网页浏览速度,而且可以丰富网页的表现,如动画、声音等。
脚本对于一些网页的支持很重要,如果提示脚本错误或者脚本被禁用,开启即可。方法如下:
1、在IE浏览器中打开Internet选项,切换到安全选项卡
2、点击自定义级别,在弹出的对话框中,找到脚本选项
3、将脚本下的也即是图中红框处的三个脚本启用即可,这样就可以开启脚本了。
但是如果还不起作用的话,那就有可能脚本遭到了破坏,这样的话需要进行全部的修复,需要使用CMD命令进行修复。方法如下:
1、在开始搜索框输入CMD,打开命令提示符。
2、输入regsvr32 jscripq.dll,回车→弹出成功提示后,点击“确定”。
3、输入regsvr32 vbscripq.dll,回车→弹出成功提示后,点击“确定”。
这样的话,就会进行修复全部的脚本,重启之后再也不不会出现提示脚本错误的问题了。
7. centos 系统下sh脚本无法执行的问题处理
新的系统遇到奇怪的问题,看门狗脚本无法正常运行,提示如下错误:
relocation error: /lib/libpthread.so.0: symbol h_errno, version GLIBC_PRIVATE not defined in file libc.so.6 with link time reference。
进入/usr/lib64目录下,发现软连接 libpthread.so.0-->libpthread-2.17.so.
于是删除libpthread.so.0, 设想从自己运行程序的当前目录拷贝一个libpthread.so.0 覆盖。结果无法执行cp拷贝命令,提示缺少libpthread.so.0. 于是恢复原来的libpthread.so.0, 然后在执行cp强制覆盖命令,结果导致了服务器重启。
最后,将自己运行程序的libpthread.so.0 重命名为libpthread.so.1, 拷贝到/usr/lib64目录下。
然后新建软连接 ln -s libpthread.so.1 libpthread.so.0 .
此时在执行sh看门狗脚本,此时提示libresolv.so.2与GLIBC不兼容。
从新从自己运行的程序路径下的libresolv.so.2重命名为libresolv.so.3. 将libresolv.so.3拷贝到/usr/lib64路径下。
删除之前软连接libresolv.so.2。 重新建立软连接 ln -s libresolv.so.3 libresolv.so.2
现在再执行脚本,脚本运行正常。
8. Windows (win10) 执行Python脚本,输入文件失败
因为windows默认使用gbk作为默认字符编码格式,所以python以utf8写入失败。
这里强制python打开windows文件的时候,以utf8格式。
Error occurs when trying to redirect Python UTF-8 stdout to a file on Windows - Stack Overflow
Python: Use the UTF-8 mode on Windows! - DEV Community
1. Command line and environment — Python 3.9.6 documentation