草庐IT

shell-mode

全部标签

linux - 逐行比较两个文件并使用 shell 脚本找到最大和最小的数字

我有两个文件,每行都有一个数字,需要比较两个文件以找到最大和最小的数字。例如:-文件12345文件2445664需要得到最大数66和最小数2。如果有人指导我了解我需要关注的命令,那将是一个很好的帮助,因为我刚刚开始学习shell脚本。 最佳答案 您可以使用:sort-nfile1file2>_sorted.tmpmin=$(head-1_sorted.tmp)max=$(tail-1_sorted.tmp)没有临时文件:arr=($(sort-nfile1file2))min=${arr[1]}max=${arr[@]:(-1)}

linux - 并行运行 bash shell 并等待

我在一个目录中有100个文件,我想分几个步骤处理每个文件,而第1步很耗时。所以伪代码是这样的:forfilenamein~/dir/*;dorun_step1filename>${filename}.out&doneforoutfilein~/dir/*.out;dorun_step2outfile>${outfile}.resultdone我的问题是如何检查给定输入文件的第1步是否已完成。我曾经在C#中使用threads.join,但不确定bashshell是否具有等效项。 最佳答案 看起来你想要:forfilenamein~/d

linux - 如何在执行 shell 脚本 Linux 时关闭回显

这个问题在这里已经有了答案:HowtosilenceoutputinaBashscript?(9个回答)关闭6年前。这是我正在做的一个简单的事情echo"pleaseenteracommand"readx$xcheckexitstatus(){...}checkexitstatus是在其他地方创建的一个ifloop,只是为了检查退出状态我想知道的是有什么办法可以让我运行$x时它不会显示在屏幕上我想知道是否可以不将输出重定向到文件

linux - 在 bash/linux 中并行运行 shell 脚本

我有一个shell脚本job.sh。内容如下:#!/bin/bashtable=$1sqoopjob--exec${table}现在当我做./job.shtable1脚本执行成功。我在文件tables.txt中有表名。现在我想遍历tables.txt文件并并行执行job.sh脚本10次。我该怎么做?理想情况下,当我执行脚本时,我希望它像下面那样做;./job.shtable1./job.shtable2./job.shtable3./job.shtable4./job.shtable5./job.shtable6./job.shtable7./job.shtable8./job.sht

linux - Bash shell 函数错误 : command not found

我是bash的新手,所以如果这是一个愚蠢的问题,请多多包涵:我实际上想在shell中输入的是这样的:javac-classpath"emarket.jar"Testclient.java-Xlint:unchecked事实是,如果我手动将上面的行输入到bash中,它会毫无错误地执行。但是,如果我像这样在.bashrc中制作自定义函数:functioncompile(){'javac-classpath"emarket.jar"'$@'.java-Xlint:unchecked';}然后在bash中发出这个命令:compileTestclient它得到一个错误说:bash:javac-c

linux - 命令在 Shell 脚本中起作用,但在命令行中不起作用?

我在发帖前快速搜索了一下,但找不到任何类似的帖子。让我知道它们是否存在。正在执行的命令看起来很简单。目录列表用作函数的输入。该目录包含一堆名为“epi1_mcf_0###.nii.gz”的文件命令行版本(执行时bash正在运行):fslmerge-toutput_file`lsepi1_mcf_0*.nii.gz`Shell脚本版本:#!/bin/bashfslmerge-toutput_file`lsepi1_mcf_0*.nii.gz`命令行版本失败,但shell脚本完美运行。错误消息是特定于函数的,但它无论如何都包含在内。**ERROR(nifti_image_read):fai

linux - 用于从另一个文件的 block 组成文件的 shell 命令

我有一个数据文件和一个包含位置列表的文件,我想从数据文件的block中生成一个文件。示例:$catdataabcdefghijkl$catpositions0,25,8$cutterpositionsdataabcfghi有没有像我假设的“切割机”一样工作的(linux)shell命令?“positions”的特定格式并不重要。我们可以假设在“positions”中指定的block是递增的,并且不重叠。可能有一个额外的“切割器”模式,其中位置计算行而不是字节。我自己可以很容易地实现这样一个程序,但我有直觉,这样的程序已经存在了。 最佳答案

linux - 如何在 shell 中启 Action 业,即使启动它的 shell 终止,该作业也会持续存在

如何在Linuxshell中启Action业,以便即使启动它的shell终止,该作业仍会持续存在?更具体地说,我正在尝试对进程运行strace。如果我在终端中执行它,它会完美运行。但是,我想在远程shell中执行此操作,该shell会在所有命令执行完毕后立即停止。"strace-ppid&"没有任何效果,因为当shell停止时,后台作业也会被终止。我应该怎么做?nohup似乎是我要找的东西。但是,sshuser@remote_machinescript_name似乎也没有任何效果。在脚本中我有"nohupstrace-ppid"非常感谢! 最佳答案

linux - 海湾合作委员会错误 : 'for' loop initial declaration used outside C99 mode

当我尝试使用make进行编译时,我遇到了error:'for'loopinitialdeclarationusedoutsideC99mode。我找到了一个wiki就是说Put-std=c99inthecompilationline:gcc-std=c99foo.c-ofoo问题是我不知道如何在make中指定它。我打开Makefile,找到CC=gcc并将其更改为CC=gcc-std=c99,但没有结果。有什么想法吗? 最佳答案 将CFLAGS=-std=c99放在Makefile的顶部。要在不使用C99的情况下消除错误,您只需在f

linux - 如何在 Linux 上的当前 shell 中执行脚本?

有没有办法在whitin中标记一个脚本在当前shell中执行?我知道我可以使用:../path/myscript.sh但我需要一种在脚本中包含“点”方式的方法。编辑:情况是这样的。我在目录A中有一个脚本“myscript.sh”:rm-rAmkdirAtouchA/test.filecdA当脚本以正常方式执行时:shmyscript.sh退出脚本时我无法列出目录。在当前shell中启动脚本时:../myscript.sh没有问题。我需要一种方法将这种“点”方式包含在我的脚本中,以便在没有它的情况下调用它。 最佳答案 有两种方法可以在