我在学校工作,问题是:
使用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
有人知道错误是什么吗?谢谢:))
答案 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)