ls와 shuf ... ... 등 결합
소개
일부 명령은 다른 명령의 목록을 처리하지만 출력 목록을 생성하지 않습니다. shuf command이 이러한 명령 중 하나입니다. 내 월페이퍼 디렉토리에서 임의의 이미지 이름을 얻으려면 다음을 수행합니다.
ls -1A ~/img/backgrounds/* | shuf -n 1
위의 명령을 사용하여 변수를 만들고 다른 명령 인수로 사용할 수 있습니다. 이 경우에는 바탕 화면 색상을 기반으로 터미널 색상 체계를 설정하는 명령입니다.
sudo pip3 install pipx
pipx install pywal
pipx 명령은 네임스페이스 충돌을 피하면서 Python 모듈을 샌드박스에 설치합니다. pywal을 설치하면
wal
명령이 생성되며 이를 사용하여 다음 셸 스크립트 라인을 생성했습니다./home/sergio/.local/bin/wal -i "$(ls -1A ~/img/backgrounds/* | shuf -n 1)"
그에 따라 경로 및 시스템 변수를 변경한 후 새 터미널을 열고 다음 명령을 실행합니다.
업데이트!
pywal에 대해 보면서 나는
shuf
명령을 사용할 필요가 없다는 것을 배웠습니다. wal
명령에 디렉토리를 제공하면 거기에서 임의의 이미지가 선택되지만 shuf 사용에 대한 지식은 결국wal --preview
이 방법으로 명령을 실행할 때마다 ...
wal -i "path-of-your-wallpapers"
...터미널 테마의 미리보기가 표시됩니다.
내 "타일링 창 관리자"인 bspwm의 경우 내
sxhkdrc
에 바로 가기가 있습니다.# change background
super + b
/home/sergio/.local/bin/wal -qi ~/img/backgrounds/
내에도 한 줄
bspwmrc
/home/sergio/.local/bin/wal -qi ~/img/backgrounds/
마지막으로 crontab에 5분마다 동일한 스크립트를 실행하는 한 줄이 있습니다.
# crontab -e
# vim:et:sw=4:ts=4:cms=#%s:
# >/dev/null 2>&1 <- used to preven sending e-mail's
# env | grep -i display to get your DISPLAY variable
# otherwhise feh will not be abble to change your background
# source: https://superuser.com/a/1122245/45032
DISPLAY=':0'
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/home/sergio/.dotfiles/algorithm/shell/bash/
XDG_PICTURES_DIR=/home/sergio/img
WALLPAPER_DIR=$XDG_PICTURES_DIR/backgrounds/
WAL=/home/sergio/.local/bin/wal
MAILTO=""
*/5 * * * * $WAL -qi $WALLPAPER_DIR
# */5 * * * * feh -z --bg-fill /home/sergio/img/backgrounds/*
# */5 * * * * wal -i "${XDG_PICTURES_DIR}/backgrounds/$(ls ${XDG_PICTURES_DIR}/backgrounds | shuf -n 1)"
#*/30 * * * * mpg123 /home/sergio/music/drink-water.mp3
다른 앱의 무작위화:
많은 유틸리티에는 무작위화를 위한 자체 플래그가 있습니다. 예를 들어
mpg123
에는 이를 위한 -Z
플래그가 있습니다.무작위화가 없는 앱의 경우 쉘 트릭을 사용할 수도 있습니다.
echo $((RANDOM % 10))
... 여기서 10은 가능한 최대 난수입니다.
Reference
이 문제에 관하여(ls와 shuf ... ... 등 결합), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/voyeg3r/combining-ls-and-shuf-and-more-2api텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)