Linux如何在命令行中运行脚本文件

说白了,在Linux中运行脚本只有两种方法:直接使用附加权限调用它,或者使用解释器显式调用它。
它也很简单,但是有很多陷阱。

先说说最重要的事情。
要添加脚本的执行权限,chmod + x。
例如,如果有myscript.sh,则运行ls -l myscript.sh,查看其前面是否有x权限。
有了这些附加权限,您必须使用 ./myscript.sh 来执行。
这一点很重要,因为如果它没有添加你当前的目录路径,使用 myscript.sh 会直接报告 Command not found。
去年我们运行那个项目时,新人忘记添加./,这导致了一个大漏洞。

还有一点就是直接通过解释器运行脚本,比如myscript.sh或者python3 myprogram.py。
这样不需要添加权限,特别适合脚本没有权限或者想要指定Python 3 .8 版本的情况。
另一个是决定性的。
Bash 脚本的第一行通常有 !/bin/bash。
这就是舍邦。
当它看到系统时,它就知道使用哪一个来运行。
推荐使用!/usr/bin/env python3 ,这样无论Python安装在哪里,系统都能立即找到正确的路径,跨平台兼容性更好。

起初我认为 chmod u+x 足以向脚本添加权限。
后来发现Linux的权限模型比较复杂,有时需要chown或者sudo。
等等,有一个。
Windows 脚本中的换行符可以是 CRLF。
如果直接使用会报Shebang错误。
您需要使用 dos2 unix 来转换它。

最后提醒:如果你把脚本放在/usr/local/bin下,别忘了用 sudo chmod +x 确认执行权限,否则权限仍然被拒绝。
我认为值得使用 ln -s 创建软链接以便能够全局移动文件。

运行 Python 脚本/代码的几种方式

这就是坑。
从命令行运行:python script.py。
直接启动:chmod +x script.py; ./script.py。
运行模块:python -m module_name。
互动:Python。
IDE 工作方式:PyCharm、VSCode。

不要相信花哨的东西。