Shell脚本 - Linux

Ida*_*dan 2 linux shell scripting

我想编写一个非常简单的脚本,它接受一个进程名称,并返回包含进程名称的最后一个文件名的尾部.

我写了类似的东西:

#!/bin/sh
tail $(ls -t *"$1"*| head -1) -f
Run Code Online (Sandbox Code Playgroud)

我的问题:

  1. 我需要第一行吗?

  2. 为什么不ls -t *"$1"*| head -1 | tail -f工作?

  3. 有没有更好的方法呢?

the*_*ega 6

1:第一行是所谓的她爆炸,阅读说明这里:

在计算中,一个shebang(也称为hashbang,hashpling,pound bang或crunchbang)指的是字符"#!" 当它们是解释器指令中的前两个字符作为文本文件的第一行时.在类Unix操作系统中,程序加载器将这两个字符作为文件是脚本的指示,并尝试使用文件中第一行其余部分指定的解释器来执行该脚本

2:tail不能从stdin获取文件名:它可以将stdin上的文本或文件作为参数.请参阅手册页.

3:没有更好的解决方案出现在我的脑海中:注意包含空格的文件名:这不适用于您当前的解决方案,您需要在$()块周围添加引号.