我怎样才能显示正确的答案?

时间:2018-04-18 05:05:33

标签: linux bash unix command debian

我在学校工作,问题是: 使用ls命令列出目录' apache2 / mods-available'中的文件。 仅列出以' a'开头的文件并有文件扩展名' .conf'。 在目录中每行列出一个文件。 在$()中输入你的bash代码来执行它并返回例子的响应:ANSWER = $(find。-name' filename')

我试图像这样解决问题:

Answer = $(ls -1 apache2/mods-available/a*.conf)

而且我得到了这个答案:

apache2/mods-available/actions.conf
apache2/mods-available/alias.conf
apache2/mods-available/autoindex.conf

不幸的是,这是错误的,因为严格的答案是:

actions.conf
alias.conf
autoindex.conf

有人知道错误是什么吗?谢谢:))

4 个答案:

答案 0 :(得分:0)

您可以使用以下脚本

Answer=$(find apache2/mods-available/ -maxdepth 1 -name 'a*.conf' -exec basename {} \;)

maxdepth是在目录1深度

中搜索

-exec basename {} \;是得到名字

答案 1 :(得分:0)

您可以在$()中拥有多个命令。所以简单地运行:

Answer=$(cd apache2/mods-available; ls -1 "a*.conf")
  • 不要在=
  • 周围放置空格
  • 引用通配符(因此它们不会扩展到当前目录中的匹配文件)
  • 不解析ls

答案 2 :(得分:0)

谢谢大家! 这个答案实际上对我有用:

$(ls apache2/mods-available/a*.conf | cut -d/ -f3)

答案 3 :(得分:-1)

使用Answer=$(ls -1 a*.conf)

尝试
相关问题