%EC%9D%84%20%ED%83%90%EC%83%89%ED%95%98%EB%8A%94%20%EB%8D%94%20%EC%89%AC%EC%9A%B4%20%EB%B0%A9%EB%B2%95%EC%9D%B4%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
파일 목록을 살펴보고 터미널을 통해 대화형으로 열고 싶다고 가정해 보겠습니다.
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