質問: お世話になっております。 `ldapsearch` を頻繁に使うことがあり、コマンドが長いので変数を使っています。 ``` i=aaaaa; ldapsearch -x -h 111.111.11.11 -p 11 ... myid=${i} objectclass=* > `date +%Y%m%d`_${i}.txt ``` サーバ上で、シェルスクリプトを置いておけないのでできればワンライナーでやりたいと考えています。 現在のやり方だと、最初の i=を書き換えているのですが、前よりも最後に変数を貼るほうが楽そうなので後ろから代入する、あるいはそれに替わる方法はないでしょうか。(bashの動作として後ろからの代入がタブーなのは承知しております。無理を言ってすみません。) よろしくお願いいたします。
回答: ``` sh -c 'ldapsearch -x -h 111.111.11.11 -p 11 ... myid=${1} objectclass=* >`date +%Y%m%d`_${1}.txt' - aaaa ``` とか、 ``` f() { ldapsearch -x -h 111.111.11.11 -p 11 ... myid=${1} objectclass=* >`date +%Y%m%d`_${1}.txt; }; f aaaa ``` OpenLDAP `ldapsearch`(1) のコマンドラインとしては不正っぽい気がしますが、それは適宜直してください。