Tag: bash

命令输出redirect到文件和terminal

我试图把命令输出到文件加控制台也。 这是因为我想保留文件中的输出logging。 我正在做以下,它附加到文件,但不打印terminal输出ls 。 $ls 2>&1 > /tmp/ls.txt

shell中的variables插值

这可能是一个非常基本的问题,但由于某种原因,我似乎过度看待明显。 我有一个名为filepath=/tmp/name的variables 要访问variables,我知道我可以做这个$filepath 在我的shell脚本中,我试图做这样的事情(后面打勾是打算的) `tail -1 $filepath_newstap.sh` 这条线路不通,duuh! 因为variables不叫$filepath_newstap.sh 如何将_newstap.sh添加到variables名称中? 请注意,反蜱是用于expression评估的

rm无法通过通配符从脚本中删除文件,而是通过shell提示符工作

我用Linux shell脚本遇到了一个非常愚蠢的问题。 我想删除目录中所有扩展名为“.bz2”的文件。 在我打电话的剧本里 rm "$archivedir/*.bz2" 其中$ archivedir是一个目录path。 应该很简单,不是吗? 不知怎的,它pipe理失败,这个错误: rm: cannot remove `/var/archives/monthly/April/*.bz2': No such file or directory 但是在那个目录下有一个名为test.bz2的文件,如果我把脚本改成 echo rm "$archivedir/*.bz2" 并将该行的输出复制/粘贴到terminal窗口中,即可成功删除该文件。 我究竟做错了什么?

从Linux上的命令队列并行处理(bash,python,ruby等等)

我有一个200个命令的列表/队列,我需要在Linux服务器的shell中运行。 我只想一次运行最多10个进程(从队列中)。 一些进程需要几秒钟才能完成,其他进程需要更长的时间。 当一个进程完成后,我希望下一个命令从队列中“popup”并执行。 有没有人有解决这个问题的代码? 进一步阐述: 有200件工作需要完成,在某种排队中。 我最多只想做10件工作。 当一个线程完成一项工作时,它应该询问队列中的下一项工作。 如果队列中没有更多的工作,线程就会死亡。 当所有的线程都已经死亡,这意味着所有的工作已经完成。 我试图解决的实际问题是使用imapsync将200邮箱从旧邮件服务器同步到新的邮件服务器。 一些用户有大邮箱,需要很长时间tto同步,其他用户有很小的邮箱和快速同步。

在bash中交换两个文件的最短途径

可以在bash中交换两个文件吗? 或者,他们可以换成比这更短的方式: cp old tmp cp curr old cp tmp curr rm tmp

Bash脚本与tmux启动一个4窗口的窗口

任何人都可以帮忙解释一下tmux , bash和exec怎么回事? 我试图设置一个4窗格的tmux会话。 理想情况下,我想在三个窗格中运行一个命令:例如一个Ruby瘦服务器和一对Ruby守护进程。 这是我迄今为止: ~/.bin/tmux-foo : #!/bin/sh tmux new-session -d -s foo 'exec pfoo "bundle exec thin start"' tmux rename-window 'Foo' tmux select-window -t foo:0 tmux split-window -h 'exec pfoo "bundle exec compass watch"' tmux split-window -v -t 0 'exec pfoo "rake ts:start"' tmux split-window -v -t 1 'exec pfoo' tmux -2 attach-session […]

Bash脚本存储命令输出到variables中

我有一个问题,有关将命令的输出存储在bash脚本中的variables。 总的来说,我知道有两种方法可以做到这一点 或 foo=$(bar) # or foo=`bar` 但是对于Java版本的查询,这似乎不起作用。 我做了: version=$(java –version) 这不会将值存储在var中。 它甚至还打印出来,实际上不应该是这样。 我也尝试将输出redirect到一个文件,但这也失败了。

我怎样才能在Mac OSXterminal中切换到别名目录

有没有办法使用命令“cd”进入shell的别名目录? 它总是返回“htdocs”不是一个目录。 编辑:我做了操作系统用户界面的快捷方式 – > rightclicked的htdocs目录,并select“别名…”(我使用德国的操作系统,如果它不是别名也许它被称为捷径英语?),然后我把它移到我的主目录(因为我的terminal从那里开始,当我打开它)。 我想要的只是打开我的terminal,input“cd htdocs”,以便我可以从那里工作。

如何为bash命令设置多个envvariables

我应该在运行命令(ec2-describe-regions)之前设置EC2_HOME和JAVA_HOMEvariables, 我该怎么做呢?

如何pipe道input到Bash while循环,并在循环结束后保存variables

Bash允许使用: cat <(echo "$FILECONTENT") Bash也允许使用: while read i; do echo $i; done </etc/passwd while read i; do echo $i; done </etc/passwd 结合前面两个这个可以使用: echo $FILECONTENT | while read i; do echo $i; done echo $FILECONTENT | while read i; do echo $i; done 最后一个问题是,它创build子shell,并且在while循环结束variables之后, i不能再被访问。 我的问题是: 如何实现这样的事情: while read i; do echo $i; done <(echo "$FILECONTENT") […]