标签: bash

Linux猫示例

你能解释一下为什么: 'cat < file.txt > file.txt '使 file.txt 为空吗?

linux bash cat

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

编写一个 bashscript 将文本文件中的每个换行符加倍?

我需要一个 bash 脚本,它将获取一个文件并为文件中已有的每个 \n 字符添加第二个 \n 字符:

那是:

abcd\nbcda

变成

abcd\n\nbcda

我该如何开始。或者,我应该用另一种语言编写它并将其包装在 bash 中吗?

text-editing bash

3
推荐指数
1
解决办法
595
查看次数

如何阻止 bash 打印警报?

kill -9 $PID &>/dev/null在脚本中杀死进程时,在下一个命令终止后仍会向终端打印一条消息。你如何阻止这种行为?

例如

while true; do
    /usr/bin/dostuff -a -b -c
    PID=$(pidof -o %PPID /usr/bin/dostuff)
    sleep 1; 
    kill -KILL $PID &>/dev/null
    echo "hello"
done
Run Code Online (Sandbox Code Playgroud)

会打印类似的东西

hello
./my-cript.sh: line 12:  7134 Killed
/usr/bin/dostuff -a -b -c
Run Code Online (Sandbox Code Playgroud)

当我只想打印“你好”时

编辑: 干净的解决方案是在子shell中运行程序,或者否认它。

#SOLUTION
while true; do
    /usr/bin/dostuff -a -b -c &
    disown
    PID=$!
    sleep 1; 
    kill -KILL $PID &>/dev/null
    echo "hello"
done
Run Code Online (Sandbox Code Playgroud)

linux unix script bash process

3
推荐指数
1
解决办法
2765
查看次数

Unix命令行用管道重复命令

我想编写一个脚本来重复一个通常包含管道的命令行

./myscript.sh ls -lart |grep ^d
Run Code Online (Sandbox Code Playgroud)

而在myscript.sh我做了一堆东西,然后想执行ls -lart |grep ^d和管道从输出到别的东西。

(如果这真的很简单并且有 1 线解决方案,请提前抱歉)。

到目前为止我已经尝试过

$@ | someothercommand
Run Code Online (Sandbox Code Playgroud)

$* | someothercommand
Run Code Online (Sandbox Code Playgroud)

但无济于事...

unix bash command-line pipe

3
推荐指数
1
解决办法
1076
查看次数

调整vim和bash使用的颜色?

有没有一种直接的方法来调整 vim 和 bash 使用的颜色?例如,十六进制颜色值?

bash vim

3
推荐指数
1
解决办法
3295
查看次数

由 cron 执行时,脚本的 stdout 和 stderr 不会被重定向

./script &>> log.txt

我得到了一个不错的日志文件,但是如果我有由 cron 执行的相同命令,那么可以说 crontab 看起来像这样:

* * * * * '/home/user/script &>> /home/user/log.txt'
Run Code Online (Sandbox Code Playgroud)

log.txt 将是空的,我试过 " 和 ' 和 ` 并且没有刻度来包含命令,知道为什么流不会被写入文件吗?

bash shell cron stdout crontab

3
推荐指数
1
解决办法
3409
查看次数

仅当服务未运行时如何尝试启动服务?(Linux)

我知道我必须计算有多少实例正在运行:

ps x | grep apache2 | wc -l 
Run Code Online (Sandbox Code Playgroud)

结果如果它正在运行:2,否则:1

我也知道有一个叫命令test,我可以用它来进行验证,但我不知道如何使用testwc

linux bash

3
推荐指数
1
解决办法
2719
查看次数

- 和 # 在 linux 文件列表中是什么意思?

在我的 /var/log 目录中,我有这三个文件(从 ls -l 中提取)

 size  filename
205198 ntp.log
  2446 ntp.log #
  4096 ntp.log -
Run Code Online (Sandbox Code Playgroud)

文件“ntp.log -”以蓝色突出显示。

名字后面的#和-是什么意思??

linux bash ubuntu

3
推荐指数
1
解决办法
371
查看次数

在 bash 提示符下显示当前的“history”行

需要在bash提示中添加什么格式字符以指示最近的history项目运行(或当前命令编号,如果可以将 1 添加到最后一个history条目)?

我的提示字符串是这样的:

\[\033[33m\][\u@\[\033[1;31m\]\h]\]\033[0m {\W}\n\033[1;34m\]\w\]\033[0m >
Run Code Online (Sandbox Code Playgroud)

给我以下显示:

[user@host] {~}
~ >
Run Code Online (Sandbox Code Playgroud)

用户为黄色,主机为红色。括号中的条目是当前目录,大于号之前的条目是完整的pwd.

我可以将当​​前命令号附加到第一行,这样我就会有如下内容:

[user@host] {~} (nnn)
~ >
Run Code Online (Sandbox Code Playgroud)

其中(nnn)在当前(或刚处理)命令数,运行时,如图history

bash history formatting command-line

3
推荐指数
1
解决办法
1411
查看次数

如何在 bash 中执行 `dir *.mp3`?

在 Windows 上,我曾经快速运行 adir *.mp3来查找当前目录中所有带有 mp3 扩展名的文件。有没有类似的快速方法可以用 bash 做到这一点?该ls命令似乎有一种方法可以忽略模式,但不能只显示模式。我可以做find . -maxdepth 1 -iname '*.mp3'ls|grep -i '\.mp3$'但这些都不会在半秒或更短的时间内从我的手指中流出)

有没有更快的替代品?

bash find

3
推荐指数
1
解决办法
392
查看次数

标签 统计

bash ×10

linux ×4

command-line ×2

unix ×2

cat ×1

cron ×1

crontab ×1

find ×1

formatting ×1

history ×1

pipe ×1

process ×1

script ×1

shell ×1

stdout ×1

text-editing ×1

ubuntu ×1

vim ×1