小编Ben*_* W.的帖子

查找过去24小时内更改的文件

例如,MySQL服务器正在我的Ubuntu机器上运行.某些数据在过去24小时内已更改.

什么(Linux)脚本可以找到过去24小时内更改过的文件?

请列出文件名,文件大小和修改时间.

linux bash find

233
推荐指数
6
解决办法
36万
查看次数

如果进程死了,如何编写bash脚本来重启?

我有一个python脚本,它将检查队列并对每个项目执行操作:

# checkqueue.py
while True:
  check_queue()
  do_something()
Run Code Online (Sandbox Code Playgroud)

如何编写一个bash脚本来检查它是否正在运行,如果没有,则启动它.大概下面的伪代码(或者它应该做类似的事情ps | grep?):

# keepalivescript.sh
if processidfile exists:
  if processid is running:
     exit, all ok

run checkqueue.py
write processid to processidfile
Run Code Online (Sandbox Code Playgroud)

我将从crontab中调用它:

# crontab
*/5 * * * * /path/to/keepalivescript.sh
Run Code Online (Sandbox Code Playgroud)

bash scripting cron

213
推荐指数
7
解决办法
21万
查看次数

如何回到Vim中最后一行之前编辑的行?

我知道`.上次编辑行的命令.有没有办法在编辑历史中走得更远?我经常在浏览文件时意外插入内容,撤消,但是`.不会再把我带到我想要的地方.

vim

197
推荐指数
2
解决办法
3万
查看次数

如果命令失败,如何退出?

我是shell脚本中的菜鸟.如果命令失败,我想打印一条消息并退出我的脚本.我试过了:

my_command && (echo 'my_command failed; exit)
Run Code Online (Sandbox Code Playgroud)

但它不起作用.它不断执行脚本中此行之后的指令.我正在使用Ubuntu和bash.

linux bash exit exitstatus

193
推荐指数
8
解决办法
14万
查看次数

在bash heredoc中使用变量

我正在尝试在bash heredoc中插入变量:

var=$1
sudo tee "/path/to/outfile" > /dev/null << "EOF"
Some text that contains my $var
EOF
Run Code Online (Sandbox Code Playgroud)

这不符合我的预期(按$var字面意思处理,不进行扩展).

我需要使用,sudo tee因为创建文件需要sudo.做类似的事情:

sudo cat > /path/to/outfile <<EOT
my text...
EOT
Run Code Online (Sandbox Code Playgroud)

不起作用,因为>outfile在当前shell中打开文件,而不使用sudo.

variables bash heredoc sh

175
推荐指数
3
解决办法
10万
查看次数

sed中的环境变量替换

如果我从脚本运行这些命令:

#my.sh
PWD=bla
sed 's/xxx/'$PWD'/'
...
$ ./my.sh
xxx
bla
Run Code Online (Sandbox Code Playgroud)

没事.

但是,如果我跑:

#my.sh
sed 's/xxx/'$PWD'/'
...
$ ./my.sh
$ sed: -e expression #1, char 8: Unknown option to `s' 
Run Code Online (Sandbox Code Playgroud)

我在教程中读到要替换你需要停止的shell中的环境变量,并且"引用"该$varname部分以便它不直接替换,这就是我所做的,并且只有在之前定义变量时才有效.

我怎样才能将sed识别$var为在shell中定义的环境变量?

unix linux shell sed

170
推荐指数
8
解决办法
22万
查看次数

如何在匹配grep表达式的行之后获取文件的一部分?(第一场比赛)

我有一个大约1000行的文件.我希望我的文件的一部分在与我的grep语句匹配的行之后.

$ cat file | grep 'TERMINATE'     # It is found on line 534
Run Code Online (Sandbox Code Playgroud)

所以,我希望该行文件__CODE__可以进一步处理.

我该怎么做 ?

bash shell scripting grep

163
推荐指数
7
解决办法
19万
查看次数

未找到bower命令

我尝试在我的Mac上安装twitter bower,我用过

npm install bower -g
Run Code Online (Sandbox Code Playgroud)

然后我尝试了bower --help,输出是bower command not found.这是为什么?

twitter node.js npm

152
推荐指数
3
解决办法
15万
查看次数

bash正则表达式匹配字符串

我想写一个包含功能,所以bash脚本时提供的.tar,.tar.bz2,.tar.gz等文件,它使用的焦油与相关的开关来解压缩文件.

我正在使用if ifif语句测试文件名以查看它的结尾,我无法使用正则表达式元字符进行匹配.

为了保存不断重写脚本我在命令行使用'test',我认为下面的语句应该有效,我已经尝试了括号,引号和元字符的每个组合,但仍然失败了.

test sed-4.2.2.tar.bz2 = tar\.bz2$; echo $?
(this returns 1, false)
Run Code Online (Sandbox Code Playgroud)

我确定问题很简单,我到处都看,但我无法理解如何做到这一点.有人知道我怎么做吗?

regex string bash

146
推荐指数
4
解决办法
25万
查看次数

否定bash脚本中的条件

我是bash的新手,我一直试图否定以下命令:

wget -q --tries=10 --timeout=20 --spider http://google.com
if [[ $? -eq 0 ]]; then
        echo "Sorry you are Offline"
        exit 1
Run Code Online (Sandbox Code Playgroud)

如果我连接到互联网,这个if条件返回true.我希望它以相反的方式发生,但放在!任何地方似乎都不起作用.

linux bash if-statement negate

141
推荐指数
5
解决办法
15万
查看次数

标签 统计

bash ×7

linux ×4

scripting ×2

shell ×2

cron ×1

exit ×1

exitstatus ×1

find ×1

grep ×1

heredoc ×1

if-statement ×1

negate ×1

node.js ×1

npm ×1

regex ×1

sed ×1

sh ×1

string ×1

twitter ×1

unix ×1

variables ×1

vim ×1