Articles of shell

执行命令行并返回命令输出

目前,我正在使用非标准SYSTEM内部例程(类似于Fortran 2008 EXECUTE_COMMAND_LINE内部函数)从我的fortran程序中使用shell命令行调用: CALL SYSTEM(commandStr) 其中commandStr是包含我要执行的shell命令的string。 此刻,我不知道直接的方式来返回commandStr的输出,但只有它的返回状态。 所以,我现在正在做的是将输出写入文件,然后从Fortran程序中读取文件。 例: CALL SYSTEM('sed ''s/,//g'' myFile > dummyFile') 如果我想从myFile中删除逗号。 然后我使用OPEN和READ来获取dummyFile的内容。 这工作得很好,但是我很关心从磁盘写入/读取文件,特别是如果我在一个长的循环内执行此操作,并且commandStr输出很大。 有没有办法将commandStr输出redirect到我可以直接从Fortran程序访问的内存缓冲区(而不是硬盘)(也许是通过一个特定的UNIT号码)?

就像将所有的命令行参数存储到一个bash脚本中一样

假设我有一个名为foo.sh的bash脚本。 我想这样称呼它 foo.sh Here is a bunch of stuff on the command-line 我希望将所有文本存储到一个variables中并打印出来。 所以我的输出是: Here is a bunch of stuff on the command-line 我将如何做到这一点?

如何获得在bash脚本中执行的命令的进程ID?

我有一个脚本,我想同时运行2个程序,一个是ac程序,另一个是cpulimit,我想先用“&”在后台启动C程序,然后得到C程序的PID,把它交给cpulimit,它也会在后台运行“&”。 我试过下面这个,它只是开始第一个程序,并从不开始cpulimit。 另外我运行这个作为一个启动脚本作为root用在arch linux中的systemd。 #!/bin/bash /myprogram & PID=$! cpulimit -z -p $PID -l 75 & exit 0

ftrace:通过echo从function_graph更改current_tracer时系统崩溃

我最近一直在玩ftrace来监视我的系统的一些行为特征。 我一直在处理通过一个小脚本打开/closures跟踪。 运行脚本后,我的系统会崩溃并重新启动。 最初,我相信脚本本身可能有错误,但是我已经确定,当current_tracer设置为function_graph时,崩溃和重新启动是将跟踪器回显到/ sys / kernel / debug / tracing / current_tracer的结果。 也就是说,下面的命令序列会产生崩溃/重启: echo "function_graph" > /sys/kernel/debug/tracing/current_tracer echo "function" > /sys/kernel/debug/tracing/current_tracer 在上面的echo语句导致崩溃之后重启重启,我看到很多输出结果如下: 清除孤立的inode <inode> 我试图重现这个问题,将函数的current_tracer值replace成C程序中的其他东西: #include <stdio.h> #include <fcntl.h> #include <unistd.h> #include <string.h> #include <stdlib.h> int openCurrentTracer() { int fd = open("/sys/kernel/debug/tracing/current_tracer", O_WRONLY); if(fd < 0) exit(1); return fd; } int writeTracer(int fd, char* […]

计算Bash中的平均值

问题陈述 给定N个整数,计算其平均值,修正到小数点后三位。 input格式第一行包含一个整数N.然后是N个整数,每个整数换行。 输出格式显示N个整数的平均值,四舍五入至小数点后三位。 input约束 1 <= N <= 500 -10000 <= x <= 10000 (x refers to elements of the list of integers for which the average is to be computed) 示例input 4 1 2 9 8 示例输出 5.000 交代 第一行中的“4”表示有四个整数的平均值将被计算。 平均值=(1 + 2 + 9 + 8)/ 4 = 20/4 = 5.000(正确到小数点后三位)即使是多余的,也请包括零(例如0.000而不是0)。

“猫”和“vim”之间的不同表演

cat /tmp/test : >> cat /tmp/test Hello World Hello World Hello World Hello World vim /tmp/test : >> vim /tmp/test ==> 1 ^[[1;31mHello World^[[0m 2 ^[[2;32mHello World^[[0m 3 ^[[5;33mHello World^[[0m 4 ^[[6;34mHello World^[[0m 对不起,我有谷歌它,但我仍然不知道如何让vim /tmp/test显示与cat /tmp/test 。 你能帮我一下吗? 谢谢。

Shell脚本linux减去参数grep

我需要帮助从文件中提取巧合。 我用tcpdump命令捕获networkingstream量 tcpdump -Xvv -i eth0> captureFile.txt 给定IP头的任何字段,TCP和以太网指定在捕获的stream量中find的所有值,并计算该字段值的多less倍。 例如,如果假设TTL = 128 TTL = 64,那么指示有多less个数据包具有每个这些值的字段。 该文件的内容: 09:26:13.245546 IP (tos 0x0, ttl 1, id 3439, offset 0, flags [none], proto UDP (17), length 1018) 10.0.0.226.58935 > 239.255.255.250.3702: UDP, length 990 0x0000: 4500 03fa 0d6f 0000 0111 ada8 0a00 00e2 E….o………. 0x0010: efff fffa e637 0e76 03e6 7ec0 […]

如何在linux shell脚本中searchpdf文件的内容?

假设我已经给了一些pdf格式的期刊论文。 我想找出论文的标题和作者列表。 我怎么能在shell脚本中做到这一点?

如何使用schell脚本从文件读取元素,做一些计算和回写?

我只是脚本语言的新手。 现在我有一个文件,里面是: > A1 B1 C1 > A2 B2 C2 > A3 B3 C3 我只想使用shell脚本(bash)按元素读取文件元素。 然后,我想对元素A1,A2和A3进行一些计算,然后将它们写回新文件(或旧文件)。 所以新文件会是(假devise算结果是D1,D2和D3): D1 B1 C1 D2 B2 C2 D3 B3 C3 计算是通过命令“date -d @(A's value)”将Unix历元时间(A的值)转换为人类可读的时间(D的值)。 我尝试使用awk命令: awk '{$1=`date -d @$1`}' test.txt 但它似乎有一些语法错误:>错误是: awk: {$1=`date -d @$3`} awk: ^ invalid char '`' in expression

使用grep匹配确切的单词

我有一个要求,search一个确切的单词,并打印一行。 如果我没有的话,它正在工作. (点)在行中。 $cat file test1 ALL=ALL w.test1 ALL=ALL $grep -w test1 file test1 ALL=ALL w.test1 ALL=ALL 它也是给第二行,我只想要确切单词test1 。