파일 목록을 탐색하고 터미널을 통해 대화형으로 열고 싶다고 가정해 보겠습니다.
locate filename | head -n 1 | xargs xdg-open
또는 그런 것. 또 다른 옵션은 마우스를 사용하여 나타나는 파일 이름을 클릭한 다음 붙여넣는 것입니다.
Tmux를 사용하면 터미널을 탐색하고, 줄을 복사하고, 명령에 병합할 수 있습니다. Bash나 zsh에서 또는 터미널 에뮬레이터에서 직접 수행할 수 있는 방법이 있습니까?
답변1
먼저 옵션을 배열에 넣으십시오. 배시 구문:
IFS=$'\n' read -r -d '' -a choices < <(locate filename)
Zsh 구문:
choices=("${(@f)$(locate filename)}")
사용자가 이들 중 하나를 선택할 수 있도록 하는 기술은 낮지만 사용자 친화적이지 않은 방법은 다음과 같습니다.select
구조.
select choice in "${choices[@]}"; do
xdg-open "$choice"
break
done
(Bash 구문. 이는 zsh에도 적용되지만 단순화될 수 있습니다.)
더 나은 인터페이스를 위해 다음을 사용할 수 있습니다.대화.
menu_args=()
for c in "${choices[@]}"; do
menu_args+=("$c" "$c")
done
if choice=$(dialog --menu "$title" "$LINES" "$COLUMNS" "$LINES" "${menu_args[@]}"); then
xdg-open "$choice"
fi