トップページunix
987コメント278KB

シェルスクリプト総合 その21

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2012/11/15(木) 18:57:33.11
シェルスクリプトの総合スレです。
□お約束
・特記なき場合はBourne Shell(/bin/sh)がデフォルトです。
 bash/zsh/ksh/ashなどに依存する場合は明示しましょう。
 Linuxユーザは/bin/shの正体がbashまたはdashなので特に注意。
 FreeBSDユーザは/bin/shの正体がashなので注意。
 v7 shに一番近くて、現役のshは、OpenSolaris由来のheirloom sh。
  http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/sh/
  http://heirloom.sourceforge.net/sh.html
・csh/tcshのシェルスクリプトは推奨されません。
 (理由は「csh-whynot」でググれ)
・UNIXにはシェルスクリプトに便利な小さなコマンドがいろいろあります。
 manや参考リンクを見ましょう。
 aproposないしはman -kでそれらしい単語による簡単な検索もできます。
・シェルで使えるワイルドカード等は正規表現ではありません。
 正規表現の話題はスレ違い(正規表現スレへ)
・シェルスクリプトのことをシェルってゆーな
□初心者へのアドバイス:
・適した道具を判断するのも頭の重要な使い方。シェルスクリプトよりも
 awkまたはperlの方が適した処理にはそちらを使いましょう。
・知らないコマンドが出てきたらmanを引きましょう。
・思い通りに動かないときは、まずは sh -x でトレースしましょう。
□回答者への注意事項:
・シェルスクリプトでの処理方法を質問しているのに、よくわからずに
 「そういうのはperl使いましょう」と回答するのはやめましょう。
 安易にperlに逃げずにシェルスクリプトで処理するのが頭のいいやり方。
前スレ
シェルスクリプト総合 その20
http://toro.2ch.net/test/read.cgi/unix/1339083351/
0759名無しさん@お腹いっぱい。2013/07/12(金) NY:AN:NY.AN
>>756 >>755
それはシェル関数を使ってできる。
わざわざ「別シェルスクリプト」に分ける意味がない。
0760名無しさん@お腹いっぱい。2013/07/12(金) NY:AN:NY.AN
759みたいのが会社にいると、可読性が悪くなって迷惑。
0761名無しさん@お腹いっぱい。2013/07/12(金) NY:AN:NY.AN
一時ファイルとか、名前付きパイプ使えばできるのは当然なので、
一時ファイルも名前付きパイプも使わずにエレガントにやる方法誰か答えてよ。
(もちろんスクリプトは1つだけでw)
0762名無しさん@お腹いっぱい。2013/07/12(金) NY:AN:NY.AN
>>758
同じで済ますとか無責任だな
0763名無しさん@お腹いっぱい。2013/07/12(金) NY:AN:NY.AN
func_test ()
{
sleep 1
echo "array[${1}]=${1}"
}

array=()

eval `
for i in \`seq 1 5\`
do
func_test ${i} &
done
wait
`

for i in ${array[@]}
do
echo ${i}
done
0764名無しさん@お腹いっぱい。2013/07/12(金) NY:AN:NY.AN
>>761
なんか実行結果をファイルっぽく扱う技があったやろ
アレ使え
0765名無しさん@お腹いっぱい。2013/07/12(金) NY:AN:NY.AN
>>763
すごい!
代入文自体を文字列として返して
実際の代入はフォアグラウンドのシェル側にevalさせるのね。
0766名無しさん@お腹いっぱい。2013/07/12(金) NY:AN:NY.AN
eval使うとquoteしないといけない時にややこしくなるねえ。
0767名無しさん@お腹いっぱい。2013/07/12(金) NY:AN:NY.AN
その手の、全部stdoutに出しちゃえ方式って、行の出力途中で分断される恐れとかないんか?
0768名無しさん@お腹いっぱい。2013/07/12(金) NY:AN:NY.AN
>>767
ない
0769名無しさん@お腹いっぱい。2013/07/12(金) NY:AN:NY.AN
なんで?1回分のechoはwrite(2)一発で出力されるって決まってるの?
0770名無しさん@お腹いっぱい。2013/07/12(金) NY:AN:NY.AN
>>769
ちょっと違うな
恐れはあるが、恐れる理由が無い
分断されてもなにも困らないから
0771名無しさん@お腹いっぱい。2013/07/12(金) NY:AN:NY.AN
>>748 のおかげで "詳しい方" が出てきてくれて良かったよ。
なんかすごい新しいノウハウ。

>>749 がつまらんトボケたこと書き込んでるけどw

これからも "詳しい方"のみ回答をお願いしますね
0772名無しさん@お腹いっぱい。2013/07/12(金) NY:AN:NY.AN
>>748がなくても出てきたよ。
0773名無しさん@お腹いっぱい。2013/07/12(金) NY:AN:NY.AN
自身では何もできないのに要求レベルを高くする屑ですね
07747452013/07/12(金) NY:AN:NY.AN
皆さんありがとうございます。
私が元々の質問者ですが、違う方が催促もしてくれているようでw

別の言語も考えたのですが別の言語を使う能力がないのと
引き継いだものをできるだけ生かしたいと思いました。
(シェルもそもそも出来ません・・・)

たくさんのアドバイスをいただきましたが
ぱっと見では分からないので動かしてみてから、また書きます。
0775名無しさん@お腹いっぱい。2013/07/12(金) NY:AN:NY.AN
能力がないんじゃなく能力を身につけようとしてないんだろ。
試しに勉強してみなよ。シェルで無理するより楽かもよ。
07767452013/07/12(金) NY:AN:NY.AN
>>753 >>763
お二人のアドバイス、両方ともやりたい事が出来ました。
どうもありがとうございました。

>>775
以前cとjavaは少し勉強した事があるのですが
ポインタでつまずき、オブジェクト指向でつまずきました。
プログラミングが専門ではないので許して下さい・・・
07777452013/07/12(金) NY:AN:NY.AN
>>764
今回は解決しましたが、そのやり方気になります。
もう少し詳しくお願いします。
07787452013/07/12(金) NY:AN:NY.AN
>>757
リトライとかタイムアウトでメッセージを出す仕組みってありますか?

1:****
2:****
・・・
のようなかたちの出力にして結果が得られたかを検証して
抜けているのがあれば手動でそれだけやりなおします。
止まった場合は、ctrl+cですw
0779名無しさん@お腹いっぱい。2013/07/12(金) NY:AN:NY.AN
>>776
PerlとかRubyでいいじゃん。
ポインタ知らんでもそれなりに使えるよ。
0780名無しさん@お腹いっぱい。2013/07/12(金) NY:AN:NY.AN
ルータのファームいじりだと、PerlもRubyも使えないので、
このスレのやりとりは、横で見てるだけでもけっこう参考になる
0781名無しさん@お腹いっぱい。2013/07/12(金) NY:AN:NY.AN
シェルスクリプトは使えるルータ?
0782名無しさん@お腹いっぱい。2013/07/12(金) NY:AN:NY.AN
>>779
perlとrubyもhello worldと少しは勉強しました。。
どうもその先が理解出来ず挫折するようです。
逆になんで理解できるんですか!?

linuxにはいろいろツールがそろっているし、ファイルも楽ちん
manとかネットが充実してるからついついシェルでやっています。
ネックは速度くらいですかね。
javaとかでさくっと書けたらかっこいいだろうなと思いつつ。。
0783名無しさん@お腹いっぱい。2013/07/12(金) NY:AN:NY.AN
ぶっちゃけシェルスクリプト使いの方が希少
0784名無しさん@お腹いっぱい。2013/07/12(金) NY:AN:NY.AN
できない言い訳を書いてる暇があったら勉強しろよタコ
0785名無しさん@お腹いっぱい。2013/07/12(金) NY:AN:NY.AN
自分は大規模なことはやってないからですかね。
他の言語を覚えるのに身が入らないのは。
シェルも皆さんほどには理解出来ていないですけど。

学生のころfortran(当時はこれしか知らなかった)で文字処理しようとしてあきらめ
シェル(grep、sed)でやって便利さに気づきました。
0786名無しさん@お腹いっぱい。2013/07/12(金) NY:AN:NY.AN
もう雑談スレだな。
0787名無しさん@お腹いっぱい。2013/07/12(金) NY:AN:NY.AN
夜食でも食うかな
0788名無しさん@お腹いっぱい。2013/07/12(金) NY:AN:NY.AN
>>781
野良電波が出ていないか定期的にチェックして、野良が出現したら
暗号化なしで繋ぎに行き、即VPNセッション張って暗号化させて、
完了したらルータのあんま使わないLEDを点灯させるスクリプトを走らせてる。
0789名無しさん@お腹いっぱい。2013/07/13(土) NY:AN:NY.AN
わけわかめ
0790名無しさん@お腹いっぱい。2013/07/13(土) NY:AN:NY.AN
触らない方がよさげ。
0791名無しさん@お腹いっぱい。2013/07/28(日) NY:AN:NY.AN
Ubuntu Linuxなのですが、Linux板にシェルスクリプトスレがないのでお邪魔しました。
Linuxを始めたばかりで、無謀にもソースからのアプリコンパイルにチャレンジしており
シェルスクリプトのエラーに悩まされています。

/opt/bitnami/common/build-1/libtool: 3215: /opt/bitnami/common/build-1/libtool:
install_prog+=install: not found
/opt/bitnami/common/build-1/libtool: 3235: /opt/bitnami/common/build-1/libtool:
files+=mod_dav_svn.la: not found

この「install_prog+=」「files+=」という箇所をエディタで探して「+=」を「=」に書き換えると
エラーなく通るようになります。
後続で別のエラーが出て結局止まるのですが、それはまた別の話としまして
このnof foundという表示はどういう意味で、どう対処すべきなのでしょうか。
0792名無しさん@お腹いっぱい。2013/07/28(日) NY:AN:NY.AN
+=はlist appendです。
shの実体がdashとかashになっていて+=理解しないんじゃない?
bashで実行してみれば?
0793名無しさん@お腹いっぱい。2013/07/28(日) NY:AN:NY.AN
>>792
/binディレクトリを見てみたら、sh -> dash*
とリンクが張られていました。Ubuntuはdashが標準なんですね。
スクリプト先頭の /bin/sh を、/bin/bash に変更したら通りました。
一週間苦しんだのであっけなく解決して魂が抜けましたが、これも勉強ですね。
0794名無しさん@お腹いっぱい。2013/07/29(月) NY:AN:NY.AN
>>793
まぁ、そうなんだけど、bashのつもりでshとスクリプトに書く方が悪いと思う。
そのアプリのメンテナにバグレポートを送ってもよいと思う。
0795名無しさん@お腹いっぱい。2013/07/29(月) NY:AN:NY.AN
>>791
↓で聞けばいいよ。

くだらねえ質問はここに書き込め! Part 206
http://engawa.2ch.net/test/read.cgi/linux/1370948130/
0796名無しさん@お腹いっぱい。2013/07/29(月) NY:AN:NY.AN
何でこのスレって排除傾向なの
0797名無しさん@お腹いっぱい。2013/07/29(月) NY:AN:NY.AN
>>796
円満に終わった話を蒸し返そうとする>>795がアホなだけ
0798名無しさん@お腹いっぱい。2013/07/29(月) NY:AN:NY.AN
しかも誘導先がくだ質って、悪質そのもの
0799名無しさん@お腹いっぱい。2013/07/29(月) NY:AN:NY.AN
なんでそうなんのw
0800名無しさん@お腹いっぱい。2013/07/29(月) NY:AN:NY.AN
>>796
一部のバカのレスをスレ全体の傾向に敷衍するのは、荒らすのが目的ですか?
0801名無しさん@お腹いっぱい。2013/07/29(月) NY:AN:NY.AN
すでに荒れきってるんですが・・・
0802名無しさん@お腹いっぱい。2013/07/29(月) NY:AN:NY.AN
たいした理由もなくアホだのバカだの悪質だの言う方が荒らしだよなぁ。
0803名無しさん@お腹いっぱい。2013/07/29(月) NY:AN:NY.AN
>>802には理由が見えてないってこと?
0804名無しさん@お腹いっぱい。2013/07/29(月) NY:AN:NY.AN
もうそのくらいにしとけ。
雰囲気悪くするだけだ。
0805名無しさん@お腹いっぱい。2013/07/29(月) NY:AN:NY.AN
dashとbash比較した時
クライアンス運用ならdashのが劣っている点はなんですか?
0806名無しさん@お腹いっぱい。2013/07/30(火) NY:AN:NY.AN
クライアンス?
0807名無しさん@お腹いっぱい。2013/07/30(火) NY:AN:NY.AN
"クライアンス運用" でぐぐってみ。
0808名無しさん@お腹いっぱい。2013/07/30(火) NY:AN:NY.AN
勿論ググりましたが、当方馬鹿なのでわかりません
サルでも分かるような回答を強く期待します
0809名無しさん@お腹いっぱい。2013/07/30(火) NY:AN:NY.AN
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13110942143
についてどう思いますか?
要は本に載ってたサンプルに

eval echo $"$VAR2"

というのがあって bash では動かないという話ですが
クォートすればいいのにしないというのは
普通のことだったんでしょうか。
0810名無しさん@お腹いっぱい。2013/07/30(火) NY:AN:NY.AN
普通か、って聞かれても答えにくいな。
0811名無しさん@お腹いっぱい。2013/07/30(火) NY:AN:NY.AN
warning 出してほしいとかいう話がちょっと前にあったみたいだけど
これは warning 出せるかも。
いや、bash ではどうすんだ?
0812名無しさん@お腹いっぱい。2013/07/31(水) NY:AN:NY.AN
LinuxとBSDで開業コード違いますよね。
Linuxは0xnで改行、BSDは0xrで改行しますよね。
どうしてこういう違いができたんでしょう?
シェルで簡単に返還する方法はありますか?
0813名無しさん@お腹いっぱい。2013/07/31(水) NY:AN:NY.AN
だったらこの改行コード変換して読めるようにしてくれよ!
N・K・F! N・K・F!
0814名無しさん@お腹いっぱい。2013/08/01(木) NY:AN:NY.AN
>>812
> LinuxとBSDで開業コード違いますよね。

違いません
だから変換する方法も必要ないです
0815名無しさん@お腹いっぱい。2013/08/01(木) NY:AN:NY.AN
MAC以外のBSDってもう死滅したでしょ?
0816名無しさん@お腹いっぱい。2013/08/01(木) NY:AN:NY.AN
してないよ。
0817名無しさん@お腹いっぱい。2013/08/01(木) NY:AN:NY.AN
>>815
FreeBSD 最新安定版リリース 9.1 / 2012年12月31日
NetBSD 最新安定版リリース 6.1 / 2013年5月18日
OpenBSD 最新安定版リリース 5.2 / 2012年11月1日
0818名無しさん@お腹いっぱい。2013/08/01(木) NY:AN:NY.AN
>>815
NECの家庭用ルータは全部BSD系。
シリアルケーブル繋ぐとメッセージも出る。

Sat Jan 1 00:00:05 JST 2011

NetBSD/messimips (Amnesiac) (console)

login:
IPL:HARD-RESET
memory test ... ok
flinstall OK

boot version: 1.0.0

PKG "Sky-ST"
CPU "Atheros/AR9341"
Revision 12.1 CLOCK 535.0 MHz
HEAP MEMORY 262144 bytes
Boot:InitFilesystem
phy1.0: "Atheros/AR934x(SW)"
phy1.4: "Atheros/AR934x(phy)"
active ch:1
post start
DRAM Test ..... PASS
Timer test .... PASS
FLASH CHKSUM .. PASS
LAN Test .....
LoopBack count 0 ..
0819名無しさん@お腹いっぱい。2013/08/01(木) NY:AN:NY.AN
ほそぼそと生きてるんだね
温かい目で見守りたくなる
0820名無しさん@お腹いっぱい。2013/08/01(木) NY:AN:NY.AN
ほそぼそでもないよ。
0821名無しさん@お腹いっぱい。2013/08/01(木) NY:AN:NY.AN
お前らが書き込んでるここもFreeBSDだろ
0822名無しさん@お腹いっぱい。2013/08/01(木) NY:AN:NY.AN
それはサーバーじゃんw サーバーじゃ意味ないんだよ。ルーターもだけどな。
0823名無しさん@お腹いっぱい。2013/08/01(木) NY:AN:NY.AN
「意味ない」の意味がわからないけど
それならWinとMac以外みんな死滅してるでいいんじゃね
お前の中ではな
0824名無しさん@お腹いっぱい。2013/08/01(木) NY:AN:NY.AN
この話おわり。
0825名無しさん@お腹いっぱい。2013/08/01(木) NY:AN:NY.AN
結論 : NECのルータが最強
0826名無しさん@お腹いっぱい。2013/08/01(木) NY:AN:NY.AN
http://121ware.com/product/atermstation/product/wimax/wm3800r/
0827名無しさん@お腹いっぱい。2013/08/01(木) NY:AN:NY.AN
Mac OS Xも改行はLFのみです。

$ cat -e -v /etc/rc.common | head -3
##$
# Common setup for startup scripts.$
##$
0828名無しさん@お腹いっぱい。2013/08/05(月) NY:AN:NY.AN
_人人人人人人_
> 智花のbash <
 ̄Y^Y^Y^Y^Y^Y^ ̄
0829名無しさん@お腹いっぱい。2013/08/07(水) NY:AN:NY.AN
袋小路に入ったみたいなので助けて下さい。

---- tmp.sh -----
#!/bin/bash

mediainfo --Inform="Video;%Width%" tmp.wmv
---- ここまで ---
は期待と通りに動作するのですが、

---- tmp1.sh -------
#!/bin/bash

_C="mediainfo --Inform='Video;%Width%'"
${_C} tmp.wmv
---- ここまで ----
だとInformオプションが無視されます。
シングル・ダブルクオートの入れ替え、;や%をエスケープなど試行錯誤したのですが、
変数に格納してからmediainfoを使うと、Informオプションは無視されます。
0830名無しさん@お腹いっぱい。2013/08/07(水) NY:AN:NY.AN
>>829

"${_C}" tmp.wmv
0831名無しさん@お腹いっぱい。2013/08/07(水) NY:AN:NY.AN
すみませんが詳しい方のみ回答をお願いします
0832名無しさん@お腹いっぱい。2013/08/07(水) NY:AN:NY.AN
>>831
勝手に成りすまさないで。
>>830
コマンド+オプションを変数に格納して、
変数をダブルクオートで囲むと、
command not found
になるよ。
------ tmp2.sh ------
#!/bin/bash

_C="ls -l"
"${_C}" hoge.txt
------ ここまで ----
$ bash tmp2.sh
tmp2.sh: 行 4: ls -l: コマンドが見つかりません
0833名無しさん@お腹いっぱい。2013/08/07(水) NY:AN:NY.AN
>>829

eval "${_C}" tmp.wmv
0834名無しさん@お腹いっぱい。2013/08/07(水) NY:AN:NY.AN
>>833
解決しました。ありがとうございました。
evalは今まで避けてきましたが、これを機会に勉強します。
0835名無しさん@お腹いっぱい。2013/08/07(水) NY:AN:NY.AN
シングルクォートを取るだけじゃいかんの?
0836名無しさん@お腹いっぱい。2013/08/08(木) NY:AN:NY.AN
ashとbash比較した時
クライアング運用ならashのが劣っている点はなんですか?
0837名無しさん@お腹いっぱい。2013/08/08(木) NY:AN:NY.AN
補間、ヒストリできないだろ。それに耐えられるならどうぞ。
0838名無しさん@お腹いっぱい。2013/08/08(木) NY:AN:NY.AN
そいつ荒らしだから相手しちゃいかんよ。
0839名無しさん@お腹いっぱい。2013/08/08(木) NY:AN:NY.AN
少なくともFreeBSDで魔改造されてる/bin/shは補完、ヒストリー呼び出し(!では呼び出せないが)は出来る。
0840名無しさん@お腹いっぱい。2013/08/08(木) NY:AN:NY.AN
じゃあashをもっと使うべきだよね
0841名無しさん@お腹いっぱい。2013/08/08(木) NY:AN:NY.AN
ログインシェルとして普通に使ってるよ。
0842名無しさん@お腹いっぱい。2013/08/08(木) NY:AN:NY.AN
わかりました。ashでクライアング運用することにします。
0843名無しさん@お腹いっぱい。2013/08/18(日) NY:AN:NY.AN
Postfix にメールが届いた時pipeを使ってrbenvでインストールしたrubyにプログラムを処理させたいのですが
ruby command not foundになってしまいます。
ログインシェルじゃないから.bashrcが読み込まれていないのが原因だと思いますがsourceで読み込んでみたり、bash -l -cなども試しましたがやはり読み込んでくれません
どこで質問したらいいかもわからず、もしすれ違いなら誘導して頂けると嬉しいです
0844名無しさん@お腹いっぱい。2013/08/19(月) NY:AN:NY.AN
env で環境変数を適切に設定してやればいいだけじゃないの?
まあ、個人設定に依存するものをシステムワイドな環境で実行できるようにするのは
セキュリティホールなので、できたとしてもやらない方がいいと思うけど。

# ruby を実行させるコマンドだったはずなのに後でユーザが破壊的な処理をする
# スクリプトに置き替えたら、システムの権限で動いてしまう。
# postfix なら root では実行されないのでまだマシだけど。
0845名無しさん@お腹いっぱい。2013/08/19(月) NY:AN:NY.AN
http://cr.yp.to/daemontools.html
これ使えば、楽なんだけど
0846名無しさん@お腹いっぱい。2013/08/19(月) NY:AN:NY.AN
postfixにはsmrshみたいな仕組みあるのかな。
sendmailでやってたのずいぶん昔の話だから覚えてないや。
0847名無しさん@お腹いっぱい。2013/08/20(火) NY:AN:NY.AN
>>846
http://www.postfix.org/postconf.5.html#local_command_shell
0848名無しさん@お腹いっぱい。2013/08/20(火) NY:AN:NY.AN
>>843
Postfix(8)
http://toro.2ch.net/test/read.cgi/unix/1227953898/
0849名無しさん@お腹いっぱい。2013/08/20(火) NY:AN:NY.AN
>>843
「pipeを使って」とは http://www.kobitosan.net/postfix/trans-2.2/jhtml/pipe.8.html
これのこと?
そして実行したいrubyのプログラムを実行するシェルスクリプトをpipeのコマンドとして指定してるということ?
だとしたら rbenv で、どれかのrubyを選択しているときのシェルの環境変数を調べて、
postfixのpipeで実行しているシェルスクリプトの最初で同じになるように設定すれば、なんとかならないかな?
08508432013/08/20(火) NY:AN:NY.AN
聞いといて申し訳ないのですが仕様が変更になりPostfixは使わなくなりました。緊急性がなくなり気が抜けてしまいましたが頂いた参考URLは見させてもらいます。アドバイスいただき本当にありがとうございました
0851名無しさん@お腹いっぱい。2013/08/27(火) NY:AN:NY.AN
ディレクトリの中に複数のテキストファイルが入っていて、
各々のファイル名を取得してそのファイル自身にファイル名を書き込むというか追加していく
というシェルスクリプト教えて下さい!
0852名無しさん@お腹いっぱい。2013/08/27(火) NY:AN:NY.AN
>>851
学校の宿題っぽいな。
テキストファイルの拡張子がtxtだったとすると、
ワンライナーで、
$ for t in *.txt; do echo $t >> $t; done
でいけると思うが、宿題でなければこれで解決だろ。
0853名無しさん@お腹いっぱい。2013/08/28(水) NY:AN:NY.AN
>>852さんありがとうございます!
宿題ではないですが超初心者です。
テキストファイルなんですが拡張子が付いてないので
試しに.txt拡張子追加してから

$ for t in *.txt; do echo $t >> $t; done

をtest.shという名前で保存して
テキストファイルがあるフォルダに放り込んでchmod +xしてから
実行しました。エラーもなく終わるんですが、どこにもファイル名が追加
されてないようです。
0854名無しさん@お腹いっぱい。2013/08/28(水) NY:AN:NY.AN
>>853
bash test.shしてみなさい
0855名無しさん@お腹いっぱい。2013/08/28(水) NY:AN:NY.AN
>>854さん、ちゃんと最下段にファイル名追加されました、感動です!
ありがとうございます!
0856名無しさん@お腹いっぱい。2013/08/28(水) NY:AN:NY.AN
>>855
ということは、もしかしてtest.shを実行するつもりで
$ test
ってやりました?
0857名無しさん@お腹いっぱい。2013/08/28(水) NY:AN:NY.AN
そんなわけないだろう。
なぁ?
0858名無しさん@お腹いっぱい。2013/08/28(水) NY:AN:NY.AN
最初は改行コードがLFになってなくて動かなくて
それに気づいて改行コード直したら、今度は
>>852さんの
$ for t in *.txt; do echo $t >> $t; done
をそのまんまコピペして行頭の$を取るの忘れてsyntax error出ました。

それでやっと$取り忘れたの気がついて動きました、お手数かけてすみませんでした。
■ このスレッドは過去ログ倉庫に格納されています