我需要一个linux脚本来询问用户是否要使用该程序,如果是,则需要询问用户他们想要搜索哪个文件。目前,我创建了两个名为terminal
和pi
的文件来测试我的脚本。
该计划的预期结果将是:
welcome
would you like to find a file?(if yes type 'y' if no type 'n'
如果是,它应该继续询问他们想要找到哪个文件,然后它应该打印该文件。
到目前为止,我有这个:
#!/bin/bash
hello "welcome!"
while [ "$hello" != "n" ]
do
echo "would you like to find a file?(if yes type 'y' if no type'n'"
read hello
case $hello in
y) echo "what is the name of the file?"
read option
***this is where the code i dont know should theroecticaly be***
n) echo "goodbye"
esac
done
就像我说的,预期的结果是它会打印文件。怎么办呢?
答案 0 :(得分:1)
尝试使用find
命令。阅读find命令的man
页面。
find <dir_name> -name ${option}
如果您想find
该文件并显示其内容:
find <dir_name> -name ${option} | xargs cat
答案 1 :(得分:1)
首先,你有一个错误:
hello "welcome"
除非您的系统上有一个名为hello
的命令,否则无法执行任何操作。要打印信息,请使用
echo "welcome"
要在打印消息后获得用户的输入,请使用read
。由于您使用的是bash
,因此可以使用-p
选项显示消息并使用一个命令保存用户输入:
read -p message" variable
要查找并显示文件的内容,可以使用find
命令及其-exec
选项。例如,-exec less
使用less
显示文件。
然后,您还有其他各种错误。脚本的工作版本类似于:
#!/usr/bin/env bash
echo 'Welcome!'
while [ "$response" != "n" ]
do
read -p "Would you like to find a file? [y/n]:" response
case $response in
y) read -p "What is the name of the file? " file
find . -type f -name "$file" -exec less {} \;
;;
n)
echo "goodbye"
exit ;;
esac
done
答案 2 :(得分:0)
或者
find . -name "<filename>" | xargs vim