bash

Лучшие фото фотосайта на рабочем столе, дубль 3

Продолжаем соревнование с фотосайтом по разработке программы для установки в Gnome фото дня с фотосайта в качестве обоев рабочего стола.

#!/bin/bash
cd /var/photosight && \
FN=`wget -q http://www.photosight.ru/applications/photo1.js -O - \
  | iconv -f cp1251 -t utf-8 \
  | sed 's/.*\(http.*jpeg\).*/\1/' \
  | sed 's/top_of_day/large/'  \
  |xargs echo`
ID=`echo $FN |sed 's/.*\/\([0-9]\+\)_large.jpeg/\1/'`
wget -q -N  $FN -O $ID.jpg && \
gconftool-2 -t str --set /desktop/gnome/background/picture_filename /var/photosight/$ID.jpg && \
gconftool-2 -t str --set /desktop/gnome/background/picture_options "centered"
cd ~-

Controlling the size of the $PWD in bash, version 2

Er... after reading the insightful comments at debian-administration.org, I figured out a much shorter version which is also easier to understand. Tested on GNU bash, version 3.1.17(1)-release (i486-pc-linux-gnu).

{syntaxhighlighter brush: bash}
function truncate_pwd
{
newPWD="${PWD/#$HOME/~}"
local pwdmaxlen=$((${COLUMNS:-80}/4))
if [ ${#newPWD} -gt $pwdmaxlen ]
then
newPWD=".+${newPWD: -$pwdmaxlen}"
fi
}

PROMPT_COMMAND=truncate_pwd
PS1="${ttyname}@\h:\${newPWD}\\$ "
{/syntaxhighlighter}