我有一个shell脚本的用例,我希望用户选择文件中提到的文件。该选项可用于使用其他命令安装所选包。 我成功地在目录中创建了所需文件的列表。 我需要帮助在用户可以选择文件并执行进一步操作的案例选项中填充它们。 我用它来写文件所需的文件名:
dir=/root/vaibhav/install_package
> choices
for entry in "$search_dir"$dir/*.zip
do
echo "$entry" | cut -d "/" -f5 >> choices
done
选择文件的输出是这样的:
content_abc.zip
content_xyz_test.zip
content_aacd_to_qa.zip
现在我希望脚本读取此文件并将其转换为用户可以执行进一步操作的int选项。 这就是我想要的:
case "<read_thefile"
1)<firstLine_from_file>
Do some actions
;;
2)<secondline_fromfile>
do some actions
;;
esac
帮助我。
答案 0 :(得分:0)
基本上你可以在你的脚本中做两件事:
case
(或select
)个开关,将其写入文件,然后获取该文件。这可能有效,但如果输入文件(拉链列表)不可靠,我不推荐它。使用nl list_of_zips
显示列表,然后read
来自用户的输入,并根据该数字,您可以从list_of_zips
中选择一行,例如:< / p>
nl list_of_zips
# 1 OUTPUT_LINE1
# 2 OUTPUT_LINE2
### now read the choice
read choice
### and get the choice line from the file
zip_file_choosen=$(awk "NR==$choice {print ; exit }")
### and do what you want with $zip_file_choosen ...