我的脚本接收用户的站点名称。
./run_script <site>
./run_script cambridge
然后,它允许用户通过脚本签出,编辑和提交对文件的更改。
但是,有些网站有两到六个文件。
因此脚本将它们列为如下
请从以下内容中选择:
cambridge1
cambridge2
cambridge3
用户输入单词cambridge [1-3]
但是,我想为每个变量分配一个值,即如下所示。
请选择您想要的选项:
1)。 cambridge1
2)。 cambridge2
3)。 cambridge3
用户输入1,2或3,然后它会选择该文件。
我目前的代码是:
echo $(tput setaf 5)
echo "Please choose from the following: "
echo -n $(tput sgr0)
find path/to/file/. -name *"$site"* | awk -F "/" '{print $5}' | awk -F "SITE." '{print $2}'
echo $(tput setaf 3)
read -r input_variable
echo "You entered: $input_variable"
echo $(tput sgr0)
答案 0 :(得分:1)
这是一种有趣的方式:
# save the paths and names of the options for later
paths=`find path/to/file/. -name "*$site*"`
names=`echo "$paths" | awk -F "/" '{print $5}' | awk -F "SITE." '{print $2}'`
# number the choices
n=`echo "$names" | wc -l`
[ "$n" -gt 0 ] || echo "no matches" && exit 1
choices=`paste <(seq 1 $n) <(echo "$names") | sed 's/\t/). /'`
echo "Please choose from the following: "
echo "$choices"
read -r iv
echo "You entered: $iv"
# make sure they entered a valid choice
if [ ! "$iv" -gt 0 ] || [ ! "$iv" -le "$n" ]; then
echo "invalid choice"
exit 1
fi
# name and path of the user's choice:
name_chosen=`echo "$names" | tail -n+$iv | head -n1`
path_chosen`echo "$paths" | tail -n+$iv | head -n1`