그래서 dmenu에 북마크를 표시하고 Firefox에서 선택한 항목을 여는 다음 스크립트가 있습니다.
#!/bin/sh
declare -a bookmarks
bookmarks=(
https://www.reddit.com/
https://www.youtube.com/
https://github.com/
https://www.veganricha.com/
)
input="$2"
addnew() {
bookmarks+=("$input")
}
while getopts a: option; do
case "${option}" in
a) addnew && exit 0 ;;
esac
done
menu="dmenu -i -l 10 -p "Bookmarks""
items=$(printf '%s\n' "${bookmarks[@]}" | $menu )
[ -n "$items" ] && firefox $items || exit 0
-a 플래그를 사용하여 실행하면 목록에 항목을 추가할 수 있습니다(제 경우에는 마지막으로 복사한 항목).
./bookmarks -a $(xclicp -o)
항목을 추가합니다. 내가 원하는 것은 스크립트에 변경 사항을 작성하는 것입니다. 따라서 플래그를 사용하여 새로 추가된 항목이 -a
스크립트에 기록됩니다.
많이 시도하고 검색했지만 알아낼 수 없었습니다. 누군가 도움을 줄 수 있기를 바랍니다.
미리 감사드립니다
답변1
스크립트 자체를 수정하는 대신 북마크를 별도의 파일에 넣고 해당 파일을 수정하세요.콰지모도 리뷰
스크립트를 다음과 같이 수정하면 됩니다.
#!/bin/sh
bookmark_file=~/bookmark_list
declare -a bookmarks
bookmarks=($(<$bookmark_file))
input="$2"
addnew() {
echo $input >> $bookmark_file
}
while getopts a: option; do
case "${option}" in
a) addnew && exit 0 ;;
esac
done
menu="dmenu -i -l 10 -p "Bookmarks""
items=$(printf '%s\n' "${bookmarks[@]}" | $menu )
[ -n "$items" ] && firefox $items || exit 0
북마크를 파일에 넣으면 변수를 변경하여 ~/bookmark_list
북마크가 저장된 파일을 쉽게 변경할 수 있습니다bookmark_file