我的问题是我需要编写一个脚本,它将把目录中的第二个文件作为输入。我不能简单地将第二个文件的名称写入脚本,因为该脚本将用于具有不同文件名的各种目录。因此,我想将目录的第二个文件的名称设置为变量,但无法找到方法。
我非常感谢任何帮助,因为我对shell脚本相当新。谢谢!
答案 0 :(得分:0)
如果您的文件名不包含换行符(通常是这种情况)或类似的陷阱,
f=$(ls | head -n 2| tail -n1)
这将获取前两个文件,然后是最后一个文件。 这是第8个文件,在sed:
的帮助下完成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"