# LASTPASS lp_login= color1='\e[31m' color2='\e[32m' color3='\e[34m' color4='\e[33m' if [ "$lp_login" = "" ]; then echo "Please edit lps.sh to set your Lastpass login."; fi lp_check_login(){ lpass status | grep 'Logged in' > /dev/null if [ $? != 0 ]; then lpass login $lp_login; fi } lp_color_alt(){ case "$color" in "$color1") color=$color2;; "$color2") color=$color3;; "$color3") color=$color4;; "$color4") color=$color1;; esac } lps() { lp_check_login lpass ls > .lp_extract IFS_bak=$IFS IFS=$'\n' declare SEARCH=($(grep -i $1 .lp_extract)) lp_search_count=$(echo "${SEARCH[*]}" | wc -l ) lp_search_count=$((--lp_search_count)) color=$color1 for i in $( seq 0 $lp_search_count ) do echo -e "$color$i) ${SEARCH[$i]}" lp_color_alt done echo -e "\e[0m\n" read -p "Item ? " lp_item lp_item_id=$(echo ${SEARCH[$lp_item]} | awk -F' |]' '{printf $(NF-1)}') lp_item_id=${lp_item_id#* } lpass show $lp_item_id read -p "Press enter to clip user/pass..." lpass show $lp_item_id --username | xclip echo "Username clipped for 4 seconds..."; sleep 4 lpass show $lp_item_id --password | xclip echo "Password clipped" notify-send "Lastpass CLI" "Password clipped" rm .lp_extract }