そのため、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