shebang

避免意外将 Python 脚本作为 Bash 脚本执行
shebang

避免意外将 Python 脚本作为 Bash 脚本执行

我喜欢直接在 bash 中运行我的 python 脚本,就像这样 $ ./script.py 但有时我会忘记shebang行#!/usr/bin/env python3,并且它可能会覆盖名为的文件(np如果脚本有的话)import numpy as np(并且如果在运行ImageMagick import 命令时单击几次)。 我该怎么做才能避免意外将 python 脚本作为 bash 脚本执行?有没有办法(shell 选项或 .bashrc 脚本)阻止 bash 将扩展名为“.py”的脚本作为 bash 脚本执行?或者实际上阻止任何没有 shebang 行...

Admin

为什么 node shebang 适用于 Angular CLI 但不适用于我的文件?
shebang

为什么 node shebang 适用于 Angular CLI 但不适用于我的文件?

互联网告诉我 Windows 不支持 shebang 行,但显然 Angular Cuses 可以实现它并且它能工作。在 Windows 上使用它并能工作的文件示例: https://github.com/angular/angular-cli/blob/master/packages/%40angular/cli/bin/ng 如果我打开 CMD,导航到包含该文件的目录并简单运行ng,Windows 将识别出它应该使用 node 运行并执行(我假设)node ng。但如果我用自己的文件尝试这样做,它不起作用。此类文件的示例: #!/usr/bin/en...

Admin

Linux:以 root 身份运行时,Shebang 解释器会抱怨编码
shebang

Linux:以 root 身份运行时,Shebang 解释器会抱怨编码

奇怪的现象:Python脚本以非特权用户身份运行,但拒绝以root用户身份运行: doprea@mlll2584:~$ python /opt/updatednsfix.py Please retry with super-user privileges $ sudo su # /opt/updatednsfix.py bash: /opt/updatednsfix.py: /usr/bin/python^M: bad interpreter: No such file or directory dos2unix已修复(以 root 身份运行,如下...

Admin

有关“#!”的信息(shebang、hashbang、crunchbang 等)
shebang

有关“#!”的信息(shebang、hashbang、crunchbang 等)

我对出现在每个 python 文件、大多数 bash 文件以及其他几个文件顶部的短语“#!”有疑问。 我已经在 Google 和本网站上搜索过该术语。Google 只是让我参考 bash 文档,而 Super User 则没有给我任何搜索结果。 因此,我的问题是: 除了显示要使用的主要解释器的顶行之外,在解释的可执行文件的任何部分中,短语“#!”还有什么用处吗? 如果是这样,它可以用来在同一个 shell 中切换解释器吗,或者它是否用于其他用途? 还有其他类型的命令可以像这个一样发送到解释 shell 吗? ...

Admin

我可以有一个有条件的事情吗?
shebang

我可以有一个有条件的事情吗?

我有一个可以用不同的解释器运行的脚本: #!/usr/bin/env default-interpreter [my script] alternative-interpreter但如果可用的话我想使用它,如下所示: #!/usr/bin/env alternative-interpreter [my script] 有没有办法创建一个 shebang,当第一个不可用时,它会寻找alternative-interpreter并返回?default-interpreter ...

Admin

如何在 bash 中恢复“.sh”关联?
shebang

如何在 bash 中恢复“.sh”关联?

由于某些未知原因,我有一台 Debian 7 VM,其中没有 shebang 行 (#!/bin/sh) 的 .sh 文件不再由 bash 关联/执行,即在 bash 下,使用“test.sh”可执行 shell 脚本 (chmod'ed +x) ./test.sh 却什么也不做 sh test.sh 将使用 bash 执行脚本。 当存在 shebang 行时,就会执行脚本。 现在,即使没有 shebang,其他(理论上相似的)Debian 7 VM 上具有相同访问权限的完全相同的脚本文件也将使用“./test.sh”执行。 知道是什么原因...

Admin

是否可以检测到 shebang 调用?
shebang

是否可以检测到 shebang 调用?

有没有办法让 bash 脚本检测它是否正在通过 shebang 运行#!/usr/bin/env? 一些神奇的 bash foo 可以让我写入: #!/bin/bash ... if [ __INVOKED_VIA_USR_BIN_ENV__ ]; then ... ...

Admin

Shebangs 不喜欢 OSX 中的 sudo
shebang

Shebangs 不喜欢 OSX 中的 sudo

在 shebang 中使用 sudo 似乎完全失效了。以下代码: #!/usr/bin/sudo /bin/bash echo "this should work" 在 Ubuntu 上运行良好,但在 OSX 上出现: sudo: effective uid is not 0, is /usr/bin/sudo on a file system with the 'nosuid' option set or an NFS file system without root privileges? 有什么想法可以让它工作吗? 注意:否则 sudo...

Admin

#!(shebang)行长度限制
shebang

#!(shebang)行长度限制

在开发 GNU Parallel 的过程中,我似乎遇到了 #! (shebang) 的长度限制。此 shebang-line: #!/bin/echo 123456789a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789i123456789j123456789k123456789done bar 在 Debian、Mandriva、SuSE、Ubuntu、Centos、RedHat 上打印此内容: 123456789a123456789b12...

Admin

脚本文件中的“#!”是什么?
shebang

脚本文件中的“#!”是什么?

$cat shebang.sed #! /bin/sed -f s/red/xxx/ s/BLUE/1234/ $./shebang.sed rgb lower (#1): "xxx green blue" UPPER (#2): "RED GREEN 1234" $sed -f shebang.sed rgb lower (#1): "xxx green blue" UPPER (#2): "RED GREEN 1234" 我可能猜到 #! 在做什么。但是,我并没有说我知道。什么是“#!”? ...

Admin

Ubuntu 执行文件时无需 ./
shebang

Ubuntu 执行文件时无需 ./

使用 shebang 行,我添加了使用 wish shell 启动 TCL 脚本的功能。但是,我只能通过./filename.tcl在终端中键入来快速启动文件。我想知道,有没有办法运行相同的脚本而不在./文件名前键入? ...

Admin

shebang 中的哪种路径更可取?
shebang

shebang 中的哪种路径更可取?

在脚本中,第一行应该指定解释器的路径。 但在不同的服务器(Linux、Unix 或 BSD)上,此路径可能不同。 有什么更好的选择? #!/usr/bin/env bash 或者 #!/bin/bash ...

Admin

Node 的 Shebang 行在 Ubuntu 18 中不起作用
shebang

Node 的 Shebang 行在 Ubuntu 18 中不起作用

我刚刚在 AWS 上创建了一个 Ubuntu 18.04 实例,并复制了一个现有项目。Node 的常用 shebang 行#!/usr/bin/env node现在不起作用。它给出了: #!/usr/bin/env: No such file or directory 可能出了什么问题? 我的$PATH变量是: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin which node给出:/usr/...

Admin