Articles of bash

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安装脚本中看到过这种类似的东西。

无法在Linux上执行PhantomJS

一直在尝试在Ubuntu 12.04虚拟机上安装phantomjs的最新版本(1.9.8)而没有成功。 以下是我迄今所做的: 为了摆脱旧版本,执行 sudo apt-get remove phantomjs 为了摆脱旧的符号链接,执行 rm -r /…/phantomjs 将phantomjs-1.9.8-linux-x86_64.tar.bz2.2下载到/ usr / local / share目录并解压: sudo wget . . ..tar.bz2 sudo tar xjf phantomjs-1.9.8-linux-x86_64.tar.bz2 创build新的符号链接到/ usr / local / share /,/ usr / local / bin /和/ usr / bin sudo ln -s /usr/local/share/phantomjs-1.9.8-linux-x86_64/bin/phantomjs /usr/. . ./phantomjs 选中版本: phantomjs –version 这是返回的消息: -bash: […]

Cronjob不运行bash脚本

我写了一个小脚本来检查openvpn是否正在运行,如果没有运行,就启动它。 这是我正在运行的脚本 #!/bin/bash **-x** ps auxw | grep openvpn | grep -v grep > /dev/null if [ $? != 0 ] then /etc/init.d/openvpn start > /dev/null log="/root/ServerRestart.log" echo "The Openvpn Server was restarted at\n" > $log date >> $log fi 这里是crontab: * * * * * /root/vpnmonitor.sh 它显示在syslog中,它运行的脚本,但它似乎并没有实际执行,脚本从terminal运行时工作正常。

使用PS1设置通过ssh设置不同的terminal背景色

我想在我的.bashrc文件中使用PS1设置来根据我是在本地机器上还是使用ssh来改变terminal的颜色。 我的本地机器和ssh服务器上的当前.bashrc文件是(默认): PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' 我尝试添加"\e[40m"到最后,但只改变了terminal的背景的一部分,在中间留下了一个黑色的栏 我将如何去改变PS1的设置,比如说,我的本地terminal是深蓝色,而sshterminal是深灰色的? 谢谢!

bash脚本错误 – 赋值给variables

我试图做一个小脚本,将给我的文件名没有$2第一个和$3在$1目录中的姓氏 我有这个代码 #!/bin/bash TOTFILES=find "$1" -maxdepth 1 -type f -exec basename {} ';' | wc -l find "$1" -maxdepth 1 -type f -exec basename {} ';' | sort | head -n (( TOTFILES-$3 )) | tail -n (( TOTFILES-$3-$2 )) 我的主要问题是,我不能指定TOTFILES与长行的输出。 我想如果我能得到这个价值分配,它将工作(希望):) PS:我不知道我是否用过 (( TOTFILES-$3 )) 对,要得到价值。 感谢您的快速答复。 现在我遇到一个新问题。 我猜(( ))是不正确的方法来获取数字 ./middleFiles: line 5: syntax […]

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 在一个脚本中,单行也只产生一个空白行,这可以消除不良引用作为一个可能的原因。 为了弄清楚发生了什么,我打破了代码。 在控制台,都是金色的: […]