我总是#!/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的新手。我有一个要求,我必须将 find 语句的输出放在数组中,因为稍后在脚本中我必须一一使用输出行。我的 find 语句将根据条件检索目录的位置。
以下是查找语句:
find blah -mindepth 3 -maxdepth 3 -type d -regex ".*/V[0-9]+/wsdls+"
Run Code Online (Sandbox Code Playgroud) 我有一个文件列表,我出于各种目的复制了这些文件。我当前的命令与此类似:
cat list_of_files | xargs -I {} /bin/cp -f {} /destination/dir
Run Code Online (Sandbox Code Playgroud)
我使用的是完整路径,cp以便默认别名cp -i不会生效。但是,当我找到重复文件时,它会覆盖任何已复制的文件。我想这样做是为了迫使cp对未覆盖和不及时。
有没有办法做到这一点?
假设我在同一台机器上有 aclient和 a server,我想编写它们之间的一些交互脚本。
我真的很想要一个 shell 脚本 -
serverserver后台clientclient它做什么)server我已经可以做到大部分,就像这样——
./server &
./client
Run Code Online (Sandbox Code Playgroud)
但这会server在脚本完成后运行,除此之外,这是非常不整洁的。
我能做什么?
我想编写 shell 或 perl 代码,它们会在 x 天后给我通知。基本上在 SUSE Linux 服务器上,208 天后需要重新启动,否则系统会死机。这是已知的错误。所以为了避免这种情况,我希望在 8 天之前收到通知邮件,类似的事情......只是一个警报......
该脚本必须检查当前的正常运行时间,然后计算总共 208 天所需的剩余天数。希望这是有道理的。
我曾经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#在每次运行时递增。
为什么会发生这种情况?
我有一个$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 的输出在第一行包含一个单词,在第二行包含一个单词。
我有两个问题:
有谁知道如何将一个音频文件批量添加到另一个音频文件并为每个文件创建单独的输出。例如
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)
谢谢!
是否有一个命令可以输出文件的所有者,而没有别的?我想我可以使用ls并运行它sed,但如果有更好的方法,我肯定会使用它。
我有看起来像这样的数据:
01234567
09876544
12345676
34576980
Run Code Online (Sandbox Code Playgroud)
我需要用 11 个空格填充它,即我的输出应该是这样的:
' 01234567'
' 09876544'
' 12345676'
' 34576980'
Run Code Online (Sandbox Code Playgroud)
我如何使用 UNIX shell 脚本来做到这一点?