Articles of shell

Xmonad,如何绑定一个键来运行一个shell脚本?

我是xmonad的新手。 每次单击时是否可以运行一个shell脚本(例如〜/ x.sh),例如f1? 这在configuration文件中看起来如何? 现在我search了很多东西,没有find任何看起来像我想要的东西。

C ++执行临时文件作为bash脚本

我有一个需要运行程序的程序,我们将在我们的Linux(CentOS)集群上并行调用externalProg – 或者说,它需要运行多个externalProg实例,每个实例都在不同的内核上运行。 每个“线程”根据几个参数创build3个文件 – externalProg的input,一个告诉externalProg如何执行我的文件的命令文件,以及一个用于设置环境的bash脚本(调用制造商提供的安装脚本)以及实际上用我的input调用externalProg。 因为这需要与未知数量的并发线程并行,我不想冒险覆盖另一个线程的文件,我正在创build临时文件 mkstemp("PREFIX_XXXXXX") 为这些input文件。 外部程序运行后,我提取相关数据并存储,并closures临时文件(因此删除它们)。 我们将调用创build的文件(实际上有一个基于上述模板的名称) tmpInputs – Inputs to externalProg tmpCommand – Input that tells externalProg how to execute tmpInputs tmpBash – bash script to set up and call externalProg with my inputs 文件tmpBash看起来像 source /path/to/setup/script # Sets up environment variables externalProg < /path/to/tmpCommand 其中tmpCommand只是一个简单的文本文件。 我遇到的问题实际上是执行bash脚本。 在我的程序中,我打电话 ostringstream launchcmd; […]

在循环中读取是/否选项,不起作用

while read line do read -p "Are you alright? (y/n) " RESP if [ "$RESP" = "y" ]; then echo "Here i want to do something, but prompt does not wait for the answer" else echo "You need more bash programming" fi done < find-spam-send-php-ver2.log ==>这个脚本不起作用。 它不会“等待”是或否的选项。 请我想要这个脚本工作。 请让我知道,如何修改这个。 我在许多Linux安装脚本中看到过这种类似的东西。

python subprocess.Popen(shell = True)创build的进程的pid不是生成的shell的pid

我有一个testingPython脚本: test.py: #coding=utf-8 import os import time print os.getpid() 通过subprocess.Popen调用它: p = sp.Popen("python test.py", shell=True) print p.pid 这两个打印语句的不同输出是预期的,因为p.pid应该是所产生的shell进程的pid,但是实际输出是: In [18]: p = sp.Popen("python test.py", shell=True) In [19]: 19108 In [19]: p.pid Out[19]: 19108

Bash脚本parsingHTML文件

我正在使用shell脚本来获取FedEx软件包的跟踪信息。 当我执行脚本的时候,我传递了跟踪号码(我在互联网上find一个虚拟号码),并使用curl: #$1=797843158299 curl -A Mozilla/5.0 -b cookies -s "https://www.fedex.com/fedextrack/WTRK/index.html?action=track&action=track&action=track&tracknumbers=$1=1490" > log.txt curl命令的输出是HTML代码,我需要的信息是在标记行之间: <!–TRACKING CONTENT MAIN–> <div id="container" class="tracking_main_container"></div> 在部分是我需要parsing的交付信息。 我对脚本相当陌生,并且尝试了一些我在网上find的“sed”build议,但是没有任何东西可以工作。

Linux C ++检测用户shell(csh,bash等)

我有一个C ++应用程序,需要使用系统调用来生成特定于shell的命令。 有没有办法来检测用户正在运行的shell? (CSH /击/等)。 谢谢 阐述 我试图与一些代码,通过system分叉rsh调用,有一个使用setenv命令序列在bash中不起作用的代码。 我想检测系统是否是csh或bash并相应地重写呼叫。

Shell代码在控制台中工作,但不在脚本中

我有一些简单的shell代码将在控制台中执行,但不是在脚本中执行。 以下是我缺乏进展的说明。 我试图隔离我的触摸屏的xinput设备号码。 这些线路在控制台上工作: % NAME="Atmel maXTouch Digitizer" % DEVICE=`xinput | grep "$NAME" | grep -o "id=[0-9]+" | tr -d id=` % echo Device found: $DEVICE Device found: 12 在一个脚本中,这些确切的线条什么都不产生 % touchscreen Device found: 这一个class轮产生相同的价值: % echo `xinput | grep "Atmel maXTouch Digitizer" | grep -o "id=[0-9]+" | tr -d id=` 12 在一个脚本中,单行也只产生一个空白行,这可以消除不良引用作为一个可能的原因。 为了弄清楚发生了什么,我打破了代码。 在控制台,都是金色的: […]

Linux作业命令 – 如何查看正在运行的进程的完整path

我正在使用Linux SUSE 11并运行大量作业。 每项工作的path都很长,例如: cmd>/user/data/some/very/very/very/long/path/to/my/command/run_me param0 param1 param2 当我运行很多这些命令时,我想知道哪些已完成,哪些正在运行。 大概一天左右吧。 使用“作业”命令我只看到以下内容: [1] + Running … [2] + Running … [3] + Running … [4] + Running … 所以我不知道哪个确切的命令正在运行。 使用top命令也没有帮助,因为是显示进程,而不是我正在运行的确切脚本/程序。 我的shell是/usr/bin/tcsh

在Bash,如何排版一个variables(数字)为5digit?

我该如何在bash中input一个variables,所以如果数字越小,它总是会填充零。 例如。 如果我将一个variables“a”设置为5位数并给出值78,那么输出应该是00078 有各种答案已经可用,告诉如何做,如使用 printf -va "%05d" 78; 但请注意,如果我们这样做,我们只改变一次输出。 例如。 printf -va "%05d" 78 echo $a a=32 echo $a; 输出: 00078 32在这里没有填充 在ksh中,有一个叫做typeset的选项,就像这样使用 typeset -Z5 gen=78; echo $gen; gen=32; echo $gen; 输出: 00072 00032 但是对于bash -Z,选项不可用于排版。 在论坛上,一个答案声称在bash中使用“声明”而不是“排版”,但是,即使在声明中,ksh的排版选项也是不可用的。 题 有没有任何可行的解决scheme,就像我设置variables的atttribute一次。 或者我需要每次tweek我的输出(如使用printf)。

用于提取特定date日志的shell脚本

我必须从任何应用程序日志中提取特定date的日志。 我们通常做什么 vi app.log /date(search) 。=(finddate的位置) G(最后一行) first_line,Last_line w filname.log(用于生成具有特定date的日志文件) 我做了小脚本,但我认为我的逻辑是不正确的: #!/bin/bash read -p " enter the App name" : app read =p " enter the Date in this Format 10 Jan 20:01:00" : date FILE=/logs/$app.log # Check if $app exists or not if test ! -f "$app" /logs then echo "Error – $app not […]