标签: shell-script

为什么shebang不会导致程序像它应该的那样分叉?

我总是#!/bin/bash在我的 shell 脚本中声明 shebang 行。最近,当我调用包含调用的脚本时exit,它杀死了我的终端。它通常会杀死分叉进程并返回到我的终端提示。为什么会发生阻止分叉的情况?

编辑

$ bash --version
GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0)
Run Code Online (Sandbox Code Playgroud)
  • 我通常使用. script_path或通过脚本的符号链接来调用脚本。

unix bash shell-script

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

如何将 find 的输出放入数组

我是Unix的新手。我有一个要求,我必须将 find 语句的输出放在数组中,因为稍后在脚本中我必须一一使用输出行。我的 find 语句将根据条件检索目录的位置。

以下是查找语句:

find blah -mindepth 3 -maxdepth 3 -type d  -regex ".*/V[0-9]+/wsdls+" 
Run Code Online (Sandbox Code Playgroud)

shell-script

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

当提示覆盖时,让 `cp` 选择 no

我有一个文件列表,我出于各种目的复制了这些文件。我当前的命令与此类似:

cat list_of_files | xargs -I {} /bin/cp -f {} /destination/dir
Run Code Online (Sandbox Code Playgroud)

我使用的是完整路径,cp以便默认别名cp -i不会生效。但是,当我找到重复文件时,它会覆盖任何已复制的文件。我想这样做是为了迫使cp覆盖和及时。

有没有办法做到这一点?

linux bash shell shell-script

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

启动一个进程,启动另一个进程,然后杀死第一个进程的 Shell 脚本

假设我在同一台机器上有 aclient和 a server,我想编写它们之间的一些交互脚本。

我真的很想要一个 shell 脚本 -

  1. 开始 server
  2. 放在server后台
  3. 开始 client
  4. (等待client它做什么)
  5. 停止 server

我已经可以做到大部分,就像这样——

./server &
./client
Run Code Online (Sandbox Code Playgroud)

但这会server在脚本完成后运行,除此之外,这是非常不整洁的。

我能做什么?

linux bash shell-script ubuntu

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

如何使用正常运行时间来触发操作?

我想编写 shell 或 perl 代码,它们会在 x 天后给我通知。基本上在 SUSE Linux 服务器上,208 天后需要重新启动,否则系统会死机。这是已知的错误。所以为了避免这种情况,我希望在 8 天之前收到通知邮件,类似的事情......只是一个警报......

该脚本必须检查当前的正常运行时间,然后计算总共 208 天所需的剩余天数。希望这是有道理的。

linux perl shell-script

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

避免使用 wget 创建多个文件

我曾经wget每 10 秒调用一次链接,如下所示:

#/bin/sh
while true; do
    wget http://www.some.random.link/to/some/PHP/script
    sleep 10
done
Run Code Online (Sandbox Code Playgroud)

这会产生空文件,称为script_name.#where#在每次运行时递增。

为什么会发生这种情况?

wget shell-script

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

Linux shell 脚本:意外的变量行为

我有一个$myvar包含两行的变量,我想将其中的第一个放入一个新变量中。

当我尝试:

$ myvar1 = $(echo $myvar | head -n 1) 
Run Code Online (Sandbox Code Playgroud)

它不起作用,因为 echo 不会像我期望的那样输出换行符。

显然我可以这样做:

$ myvar1 = $(echo $myvar | cut -d " " -f 1)
Run Code Online (Sandbox Code Playgroud)

它将工作,因为 echo 的输出在第一行包含一个单词,在第二行包含一个单词。

我有两个问题:

  1. 为什么 echo 打印空格而不是换行符?
  2. 是否有可能使它更容易或更正确(我不是 shell 脚本方面的专业人士,也许我在这里遗漏了一些东西)

shell shell-script string-manipulation echo

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

在Unix中批量合并两个文件

有谁知道如何将一个音频文件批量添加到另一个音频文件并为每个文件创建单独的输出。例如

Files:

Static.wav
Audio1.wav
Audio2.wav
Audio3.wav
Run Code Online (Sandbox Code Playgroud)

我需要一个可以执行以下操作的脚本:

Static.wav + Audio1.wav = Audio1out.wav
Static.wav + Audio2.wav = Audio2out.wav
Static.wav + Audio3.wav = Audio3out.wav
Static.wav + Audio*.wav = Audio*out.wav
(* = wildcard)
Run Code Online (Sandbox Code Playgroud)

谢谢!

audio unix bash shell-script macos

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

shell 脚本 - 如何输出文件的所有者

是否有一个命令可以输出文件的所有者,而没有别的?我想我可以使用ls并运行它sed,但如果有更好的方法,我肯定会使用它。

linux unix shell-script ownership

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

如何在 Unix shell 脚本中用空格填充字符串?

我有看起来像这样的数据:

01234567
09876544
12345676
34576980
Run Code Online (Sandbox Code Playgroud)

我需要用 11 个空格填充它,即我的输出应该是这样的:

'           01234567' 
'           09876544'
'           12345676'
'           34576980'
Run Code Online (Sandbox Code Playgroud)

我如何使用 UNIX shell 脚本来做到这一点?

unix shell-script

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

标签 统计

shell-script ×10

bash ×4

linux ×4

unix ×4

shell ×2

audio ×1

echo ×1

macos ×1

ownership ×1

perl ×1

string-manipulation ×1

ubuntu ×1

wget ×1