标签: shebang

什么是首选的Bash shebang?

有没有什么Bash家当客观上比其他大多数应用更好?

  • #!/usr/bin/env bash
  • #!/bin/bash
  • #!/bin/sh
  • #!/bin/sh -
  • 等等

我很清楚地回忆起很久以前的一次听说,在最后添加一个破折号可以防止有人将命令传递给你的脚本,但却无法找到任何细节.

bash shebang

1051
推荐指数
5
解决办法
42万
查看次数

983
推荐指数
17
解决办法
68万
查看次数

我应该放#!(shebang)在Python脚本中,应该采用什么形式?

我应该把shebang放在我的Python脚本中吗?以什么形式?

#!/usr/bin/env python 
Run Code Online (Sandbox Code Playgroud)

要么

#!/usr/local/bin/python
Run Code Online (Sandbox Code Playgroud)

这些同样便携吗?哪种形式最常用?

注:龙卷风项目采用的家当.另一方面, Django项目没有.

python shell shebang python-3.x

741
推荐指数
10
解决办法
44万
查看次数

为什么需要在脚本文件的开头加上#!/ bin/bash?

之前我已经制作了Bash脚本,并且在开始时它们都运行正常.把它放进去有什么意义?会有什么不同吗?

另外,你怎么发音#?我知道那个!发音是"爆炸".

怎么#!发音?

linux bash scripting shebang

459
推荐指数
7
解决办法
58万
查看次数

"#!/ usr/bin/env bash"和"#!/ usr/bin/bash"有什么区别?

bash脚本的标题中,这两个语句之间的区别是什么?

  1. #!/usr/bin/env bash

  2. #!/usr/bin/bash

当我试图看到env手册页时,我得到了这个定义:

 env - run a program in a modified environment
Run Code Online (Sandbox Code Playgroud)

这是什么意思?

unix linux bash shell shebang

319
推荐指数
4
解决办法
13万
查看次数

为什么#!/ usr/bin/env bash优于#!/ bin/bash?

我在很多地方看到过,包括对这个网站的推荐(什么是首选的Bash shebang?),#!/usr/bin/env bash优先使用#!/bin/bash.我还看过一个进取的个人建议使用#!/bin/bash错误的和bash的功能会这样做会丢失.

总而言之,我在严格控制的测试环境中使用bash,其中每个循环驱动器基本上都是单个主驱动器的克隆.我理解可移植性论点,虽然它不一定适用于我的情况.是否有任何其他理由更喜欢#!/usr/bin/env bash替代品,并且假设可移植性是一个问题,是否有任何理由使用它可能会破坏功能?

bash shebang

185
推荐指数
4
解决办法
6万
查看次数

"#!/ bin/sh"行在UNIX shell脚本中的含义是什么?

我正在阅读一些shell脚本教程并找到以下示例程序:

#!/bin/sh
clear
echo "HELLO WORLD"
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我#!/bin/sh在评论中提及' ' 的意义是什么?

unix shell shebang sh

134
推荐指数
4
解决办法
18万
查看次数

如何使用shebang(即#!)为awk使用多个参数?

我想用shebang 执行一个gawk脚本--re-interval."幼稚"的方法

#!/usr/bin/gawk --re-interval -f
... awk script goes here
Run Code Online (Sandbox Code Playgroud)

不起作用,因为gawk是用第一个参数调用的"--re-interval -f"(不是在空白处分开),它不明白.有解决方法吗?

当然你可以不直接调用gawk,而是将它包装成一个分割第一个参数的shell脚本,或者创建一个shell脚本,然后调用gawk并将脚本放到另一个文件中,但我想知道是否有某种方法可以做这在一个文件中.

shebang行的行为因系统而异 - 至少在Cygwin中它不会通过空格分割参数.我只关心如何在一个行为类似的系统上做到这一点; 该脚本不是便携式的.

unix shell awk shebang gawk

114
推荐指数
5
解决办法
3万
查看次数

"/ usr/bin/env node"在节点文件的开头究竟做了什么?

#!/usr/bin/env node在一些例子的开头看到了这一行,nodejs我用google搜索没有找到任何可以回答该行原因的话题.

单词的性质使搜索变得不那么容易.

我最近读了一些javascriptnodejs书,我不记得在其中任何一个看过它.

如果你想要一个例子,你可以看到RabbitMQ官方教程,他们几乎在所有的例子中都有它,这里有一个:

#!/usr/bin/env node

var amqp = require('amqplib/callback_api');

amqp.connect('amqp://localhost', function(err, conn) {
  conn.createChannel(function(err, ch) {
    var ex = 'logs';
    var msg = process.argv.slice(2).join(' ') || 'Hello World!';

    ch.assertExchange(ex, 'fanout', {durable: false});
    ch.publish(ex, '', new Buffer(msg));
    console.log(" [x] Sent %s", msg);
  });

  setTimeout(function() { conn.close(); process.exit(0) }, 500);
});
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下这条线的含义是什么?

如果我放入或删除此行有什么区别?在什么情况下我需要它?

shebang node.js

85
推荐指数
3
解决办法
4万
查看次数

Node.js脚本的适当hashbang

我正在尝试为node.js创建一个可在多个环境中工作的脚本.特别是对我来说,我在OS X和Ubuntu之间来回切换.在前者中,Node安装为node,但后者是nodejs.在我的脚本的顶部,我可以:

#!/usr/bin/env node
Run Code Online (Sandbox Code Playgroud)

要么

#!/usr/bin/env nodejs
Run Code Online (Sandbox Code Playgroud)

我宁愿让脚本作为任一环境的可执行文件运行,只要安装了节点而不是让一个或另一个必须指定命令(./script-name.jsvs. node script-name.js).

是否有任何方法可以指定备份hashbang或者在node.js的任何一种情况下都兼容?

shell shebang node.js

68
推荐指数
1
解决办法
2万
查看次数

标签 统计

shebang ×10

shell ×6

bash ×4

unix ×3

linux ×2

node.js ×2

python ×2

awk ×1

gawk ×1

python-3.x ×1

scripting ×1

sh ×1