我希望用bash脚本读取一个目录(实际上我使用的是zsh).
我想在同一目录中列出当前文件夹并将其显示给用户,要求他们输入一个数字以选择正确的文件夹.
Please select a Folder eg, 1,2,3.
1. Folder Name 1 (this should the actual name of the folder in the dir
2. Folder 2
3. Folder 3.
Run Code Online (Sandbox Code Playgroud)
我也希望能够转换输入,例如1.回到实际的文件夹名称,所以我可以
cd ./$foldername/
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.干杯,约翰.
Chr*_*sen 28
除非您的格式要求非常严格,否则您可以使用bash的select构造.
以下代码将显示当前目录中所有目录的菜单,然后是所选目录的chdir:
printf "Please select folder:\n"
select d in */; do test -n "$d" && break; echo ">>> Invalid Selection"; done
cd "$d" && pwd
Run Code Online (Sandbox Code Playgroud)
#!/bin/bash
dirs=(*/)
read -p "$(
f=0
for dirname in "${dirs[@]}" ; do
echo "$((++f)): $dirname"
done
echo -ne 'Please select a directory > '
)" selection
selected_dir="${dirs[$((selection-1))]}"
echo "You selected '$selected_dir'"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16965 次 |
| 最近记录: |