しらいです。

In article <040515231734.M0108865@ns.kobe1995.net>,
NAKAMURA Kazushi <kaz@kobe1995.net> wrote:
>中村和志@神戸です。

>>FreeBSD2.2.8で使えました。exprをfork&execしなくて済むと知ってしまった今、
>>tcshを使う理由が無くなってしまったような…。
>
>まだ残っていました。$変数:r 等です。

 対象は FreeBSD 2.2.8 以降の ash でいいんですね?その辺りに
なると POSIX 準拠がほぼ実現されていますので、${%} や ${#} が
使える筈です。少なくとも 2.2.6 の /bin/sh では使えました。


>$ for i in *.jpg *.tif *.ppm;do convert -resize 750x500 $i $i:r.jpeg;done
>
>てな感じでワンライナーにしたいのですが、shだと $i:r が働きません。

$ for i in *.jpg *.tif *.ppm; do convert -resize 750x500 $i ${i%.*}.jpeg; done

 拡張子が「.tar.gz」のように複数から成る場合は「${i%%.*}」
ですね。
 流石に「package-1.0.4b-beta」みたいな「.」付の basename の
後ろに「.tar.gz」やら「.patch」やらついてる filename 群から
basename を取出すのは無理でしょうね。
 尤もこれは csh でも無理っぽいけど。

-- 
                                               しらい たかし