相关疑难解决方法(0)

Shebang在Ubuntu中解析问题

什么是在shebang线中包含解释器选项的可接受的,可移植的方式,即.我该怎么办呢

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

或者(更重要的是)类似的东西

#!/usr/bin/env java -cp "./jars/*:./src" -Xmn1G -Xms1G -server
Run Code Online (Sandbox Code Playgroud)

并让它正确解析?现在ubuntu似乎只是将整个事情放在一起,尽管其他系统会解析这个问题没有问题.

http://en.wikipedia.org/wiki/Shebang_%28Unix%29

描述了问题,但没有解决方案.

java ubuntu shebang

5
推荐指数
1
解决办法
1683
查看次数

-CSD太晚了

试图从parsCit运行这个小的perl程序:

parsCit-client.pl e1.txt [filename]第1行的-CSD选项太迟了

e1.txt在这里:http://dl.dropbox.com/u/10557283/parserProj/e1.txt

我从win7 cmd运行程序,而不是Cygwin.

filename是parsCit-client.pl - 整个程序在这里:

#!/usr/bin/perl -CSD
#
# Simple SOAP client for the ParsCit web service.
#
# Isaac Councill, 07/24/07
#
use strict;
use encoding 'utf8';
use utf8;
use SOAP::Lite +trace=>'debug';
use MIME::Base64;
use FindBin;

my $textFile = $ARGV[0];
my $repositoryID = $ARGV[1];

if (!defined $textFile || !defined $repositoryID) {
    print "Usage: $0 textFile repositoryID\n".
    "Specify \"LOCAL\" as repository if using local file system.\n";
    exit;
}

my $wsdl = "$FindBin::Bin/../wsdl/ParsCit.wsdl";

my …
Run Code Online (Sandbox Code Playgroud)

perl

5
推荐指数
1
解决办法
1055
查看次数

shebang有多个版本

在我的大量Ruby脚本集中,我用常见的shebang开始我的脚本:

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

现在我发现一些需要某些Ruby版本的脚本,不,它们不是可以在特定Ruby版本下部署的Rails应用程序.它们只是单个文件脚本,可以从命令行启动,无法使用系统版本.

在运行下面的文件代码之前,有没有办法编写一个用rbenv/rvm设置环境的shebang?

ruby shebang rvm rbenv

5
推荐指数
1
解决办法
2074
查看次数

如何在 Ruby 中设置 stdin 的编码

我希望我的脚本能够从 stdin 获取输入,其中数据可能以 UTF8 或 UTF16 编码提供。

就像是:

datasource | my-script -e utf8

如何设置 stdin 的 external_encoding ?

ruby encoding

5
推荐指数
1
解决办法
896
查看次数

如何欺骗shebang允许多个参数?

是否知道大多数shebang实现都支持单个参数,所以如果你有类似的东西

#!/usr/bin/env some-tool-accepting-yaml param1 param2
... (yaml body)
Run Code Online (Sandbox Code Playgroud)

它现在将按预期工作,因为它将使用"param1 param2"参数调用该工具,而不是将其拆分为两个参数.

似乎一种解决方法是使用类似的东西:

#!/bin/sh
arbitrary_long_name==0 "exec" "/usr/bin/gawk" "--re-interval" "-f" "$0" "$@"
Run Code Online (Sandbox Code Playgroud)

现在这种方法会使基于YAML的脚本由于第二行而无效,因此唯一可接受的解决方法是也是注释,也以"#"开头.

有没有办法绕过这个问题呢?

bash shell shebang

5
推荐指数
1
解决办法
330
查看次数

Python 中的异步 stdin 读取

程序一次连续打印一行到标准输出。

我试图一次读取并处理该输入的一行,而不必等待程序完成。

作为示例,下面的 writeOutput.py 一次将一行写入 stdout(在每行之间等待 1 到 3 秒)。

调用./writeOutput.py | ./processEachLine.py需要 writeOutput.py 在 processEachLine.py 能够开始处理第一行之前完成。

无论如何,有没有办法在Python中实现这一点?即使直接在 python 程序中调用 writeOutput.py 而不是使用管道?

任何帮助将不胜感激。

写输出.py

#!/usr/bin/env python
import random
import time

i = 0
while i < 5:  
    n = int(1 + (random.random()*10) % 3)
    i += 1
    time.sleep(n)
    print(str(n) + " test")  
Run Code Online (Sandbox Code Playgroud)

处理每一行.py

#!/usr/bin/env python    
import sys

while 1:
    line = sys.stdin.readline()
    if not line:
      break
    print(">>" + line)
Run Code Online (Sandbox Code Playgroud)

python

3
推荐指数
1
解决办法
2007
查看次数

在ipython中发送python命令行参数

我们如何启动ipython REPL并指示它将一些命令行参数传递给底层的python解释器?

例如,我们可以使用增加详细程度打开python REPL

python -v
Run Code Online (Sandbox Code Playgroud)

但是在打开ipython时我无法看到如何通过那面旗帜.

python ipython

3
推荐指数
1
解决办法
785
查看次数

为什么“/usr/bin/env bash -x”只能在命令行中工作?

我正在玩图像docker CentOS,发现/usr/bin/env bash -x在终端中执行“”命令是可以的:

bash-4.1# /usr/bin/env bash -x
bash-4.1# exit
+ exit
exit
Run Code Online (Sandbox Code Playgroud)

但是把这个命令写成脚本执行后却不起作用,提示“ No such file or directory”:

bash-4.1# ls -lt a.sh
-rwxr-xr-x. 1 root root 23 May 20 04:27 a.sh
bash-4.1# cat a.sh
#!/usr/bin/env bash -x
bash-4.1# ./a.sh
/usr/bin/env: bash -x: No such file or directory
Run Code Online (Sandbox Code Playgroud)

两种方法有什么区别吗?

linux bash shell env docker

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

可执行的八度音程脚本:'usr/local/bin/octave: invalid option -- '

我正在尝试编写一个可以作为可执行文件运行的 Octave 脚本。

我使用的是八度音阶版本 3.6.0。我运行下面的脚本下载的形式在这里

#!/usr/local/bin/octave -qf

# An example Octave script 

len = input( "What size array do you wish to use for the evaluation: " );

clear a; 
tic(); 
for i=1:len
    a(i) = i; 
endfor 
time1 = toc();

a = [1]; 
tic(); 
for i=2:len 
    a = [a i]; 
endfor
time2 = toc();

a=zeros( len, 1 ); 
tic(); 
for i=1:len 
    a(i) = i; 
endfor
time3 = toc();

printf( "The time taken for method 1 was %.4f seconds\n", …
Run Code Online (Sandbox Code Playgroud)

linux octave

1
推荐指数
1
解决办法
3884
查看次数

在 awk 脚本头中指定其他标志

我想使用#!/bin/awk -f标头编写 awk 脚本文件,但我希望该脚本始终用作:字段分隔符。但由于某种原因,写作#!/bin.awk -F: -f给了我一个语法错误。我还希望这个脚本始终在同一个文件上运行,所以我也想对其进行硬编码。基本上,我想要的工作是这样的:

#!/bin/awk -F: -f -- /etc/passwd
Run Code Online (Sandbox Code Playgroud)

接下来是一些 awk 代码

bash awk

1
推荐指数
1
解决办法
552
查看次数

标签 统计

bash ×3

shebang ×3

linux ×2

python ×2

ruby ×2

shell ×2

awk ×1

docker ×1

encoding ×1

env ×1

ipython ×1

java ×1

octave ×1

perl ×1

rbenv ×1

rvm ×1

ubuntu ×1