Articles of 命令行参数

如何从文件中有效地读取环境参数,与exec一起使用

我希望能够保存到一个进程的argv和environ文件中,而不是在以后的时间里使用保存到文件的参数进行fork和exec操作。 我能想到的唯一的devise是写入文件的参数列表作为一个长的string,但是我需要将它从string转换为一个string数组,这是可能的,但非常繁琐。 任何人都可以想到一个更好的方法来做到这一点?

Linux如何通过date命令的输出作为python程序的input作为命令行参数

我对Linux很新手。 我有一个非常简单的Python脚本,接受命令行参数并打印它们。 现在我只想将date命令的输出作为input传递给这个Python脚本并打印出来。 Python脚本看起来像这样。 import sys print "command line arguments recieved are" for i in range(0,len(sys.argv)) : print sys.argv[i] 在运行这个程序时,为了将date命令的输出传递给脚本,我只是做了 date | python exmp.py 这是正确的方式来传递一个命令的输出作为一个程序的input? 我的程序没有从date命令input。 我得到的输出是这样的 command line arguments recieved are exmp.py 我真的不知道我在做什么错事。 请帮我解决这个问题。

将命令行parameter passing给shell脚本中的awk

背景信息: 我正在尝试编写一个小的shell脚本,它在.fas文件中search一个模式(string),并打印find该模式的行和位置。 当我调用shell脚本时,下面的代码片断起作用: 脚本(search.sh): #!/bin/bash awk 's=index($0, "CAATCTCC"){print "line=" NR, "start position=" s}' 100nt_upstream_of_mTSS.fas 命令行调用: $ ./search.sh 第一个问题: 当我将脚本更改为: awk 's=index($0, "CAATCTCC"){print "line=" NR, "start position=" s}' 并在我的bash中执行以下命令行调用: $ ./search.sh 100nt_upstream_of_mTSS.fas “什么都没有”发生(有些事情正在运行,但是时间太长,没有结果出现,所以终止了这个过程)。 值得一提的是: 我在search.sh所在的目录中 文件100nt_upstream_of_mTSS.fas也位于那里 search.sh是可执行的 我可能是“屏幕盲”,但我找不到原因,为什么我无法将命令行parameter passing给我的脚本。 解决scheme – 查看评论 注意:这种方式只能find一行中第一个出现的模式。 第二个问题: 此外,我想使主题(string)我searchvariables。 我试过这个: 脚本: #!/bin/bash FILE=$1 MOTIF=$2 awk 's=index($0, "$MOTIF"){print "line=" NR, "start […]

pipe道参数:echo“value1 value2”| 命令$ 1 $ 2

我用Sed来抓住两个有趣的值。 现在我想把这两个值作为参数发送给Curl。 我已经成功地将Sed输出pipe道输出到Curl,只有一个参数使用xargs,但是我无法为一个命令使用两个参数。 回声“值1”“值2”| curl –data'valA = $ 1 &valB = $ 2'http: //example.com 我被困在理论和实践中。 我不打算使用bash脚本。 [我正在运行tshark,pipe道输出到sed,并希望pipe道输出curl,以便在远程数据库中logging数据。 ]

bash脚本中的参数个数

我想testing传递给Linux shell脚本的参数的数量。 如果参数的数目不是2或4 ,它应该打印一些东西。 不幸的是,这是行不通的。 任何人都可以解释我做错了什么? #!/bin/bash if [[ $# -ne 2 ]] || [[ $# -ne 4 ]]; then echo "here"; fi

如何获得在bash脚本中小于符号(<)之后的参数?

例如,我有 ./run.sh < file.dat 如何获得run.sh中的参数“file.dat”?

Xargs并行在Bash中

所以我在BASH中有这个function,我试图理解 – 它使用并行性: function get_cache_files() { ## The maximum number of parallel processes. 16 since the cache ## naming scheme is hex based. local max_parallel=${3-16} ## Get the cache files running grep in parallel for each top level ## cache dir. find $2 -maxdepth 1 -type d | xargs -P $max_parallel -n 1 grep -Rl […]

Bash脚本:选项 – 大小写:多个数字的范围

我正在Linux Bash中使用不同types的选项来编写脚本。 基本上,程序将ping到给定的ip地址。 现在,我想让用户在terminal上写一个ip地址范围,然后程序就可以ping通。 Fe:bash pinscript 25 – 125 该脚本将会ping 192.168.1.25和192.168.1.125之间的所有地址。 这不难,我只需要写一个小例子 [0-9]-[0-9] ) ping (rest of code) 现在的问题是:这段代码将只能让我ping通数字。 0 – 9,而不是10 – 25 。 为此,我需要写:[0-9] [0-9] – [0-9] [0-9](fe:ping 25 – 50) 但是有可能在一边有一个号码,另一边有两个号码: [0-9]-[0-9][0-9] (fe: ping 1 – 25) 或者: [0-9]-[0-9][0-9][0-9] (fe: ping 1 – 125) 等等…这意味着有很多的可能性。 可能有另一种方式来写它,但是如何? 我不想让任何字母出现在参数中,但是我不能从这个开始(循环系统)。

我怎样才能从Javaterminal运行我的语句?

我怎样才能从terminal运行我的声明? $ java -c System.out.println("test"); bash: syntax error near unexpected token `('

使用Python的sys.argv将函数结果返回给命令行?

我有一个可执行的文件。 它有一个函数,我想将其结果返回到命令行,但是,我不断收到NameError消息。 打破事情,我正在使用LinuxMint丽莎,到目前为止,我有: #! /usr/bin/env python import mechanize from BeautifulSoup import BeautifulSoup import sys def dictionary(word): br = mechanize.Browser() response = br.open('http://www.dictionary.reference.com') br.select_form(nr=0) br.form['q'] = word br.submit() definition = BeautifulSoup(br.response().read()) trans = definition.findAll('td',{'class':'td3n2'}) fin = [i.text for i in trans] query = {} for i in fin: query[fin.index(i)] = i return query print dictionary(sys.argv) 然后,我从我的terminalchmod: […]