Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Ubuntu shell脚本将目录的第二个文件保存为变量_Linux_Shell_Ubuntu - Fatal编程技术网

Linux Ubuntu shell脚本将目录的第二个文件保存为变量

Linux Ubuntu shell脚本将目录的第二个文件保存为变量,linux,shell,ubuntu,Linux,Shell,Ubuntu,我的问题是我需要写一个脚本,它将把目录中的第二个文件作为输入。我不能简单地将第二个文件的名称写入脚本,因为脚本将用于具有不同文件名的不同目录。因此,我想将目录的第二个文件的名称设置为变量,但找不到这样做的方法 任何帮助都将不胜感激,因为我对shell脚本相当陌生。谢谢 如果您的文件名不包含换行符(这是最常见的情况)或类似的陷阱 f=$(ls | head -n 2| tail -n1) 这将获取前两个文件,然后是最后一个文件。 以下是sed帮助拍摄的第8份文件: time f=$(ls | s

我的问题是我需要写一个脚本,它将把目录中的第二个文件作为输入。我不能简单地将第二个文件的名称写入脚本,因为脚本将用于具有不同文件名的不同目录。因此,我想将目录的第二个文件的名称设置为变量,但找不到这样做的方法


任何帮助都将不胜感激,因为我对shell脚本相当陌生。谢谢

如果您的文件名不包含换行符(这是最常见的情况)或类似的陷阱

f=$(ls | head -n 2| tail -n1)
这将获取前两个文件,然后是最后一个文件。 以下是sed帮助拍摄的第8份文件:

time f=$(ls | sed -n '8p')
这里有一个断线不可知的解决方案:

n=1; for f in * ; do if (( $n == 11 )); then echo $f; break; fi; ((++n)); done 
line break.bad

f=$(ls | sed -n '11p'); echo $f; 
line
这个文件是用

touch "line
break.bad"

那很好。您通常通过向上投票并接受答案(图标点击左侧的
^
v
和复选标记)来表示问题已解决。通过这种方式,其他搜索答案的人可以在概览中看到,一个问题得到了多少上等投票的答案,以及提出问题的人是否接受一个答案作为解决方案。如果出现更好的答案,则可以稍后将复选标记重新分配给另一个答案。