bashで補完スレ
at UNIX
[1からを表示]
50:名無しさん@お腹いっぱい。
02/07/16 01:49.net
>>46
% 俺は途中乗|<tab>
換でbash使い始めたけど$は落ち着かないから%にしてる
% 俺は途中乗|
% |
% う|<tab>
うるせーばか
% う|
51:名無しさん@お腹いっぱい。
02/07/23 14:29.net
「bashがマルチバイト文字に正式対応」
URLリンク(slashdot.jp)
これって日本語のファイル名とかもlsで表示できるってこと?
52:名無しさん@お腹いっぱい。
02/07/23 15:20.net
こういう時はageたほうがいいような。
よくわからんのでさっそく2.05bをいれてみたんだが、行の折り返しで化ける問題
もマルチバイト文字を2文字として認識してる問題も、まるっきり変わってない
ような気が。
buildの仕方に問題あったのかなあ。
あ、でも補完機能すごいね。
補完リストが1画面分より長いと、途中で止めてくれるわ。これは便利かも。
53:名無しさん@お腹いっぱい。
02/07/23 15:33.net
いっしょに話題になったreadlineをインスコした。
readlineを使ったプログラム、うちの場合はPostgreSQLの
フロントエンドpsqlなのだが、ロケールの設定を日本語に
しておくと、漢字部分でのカーソル移動がちゃんと2文字分
になってて、削除も漢字1文字ごとやってくれる。
多分新Bashもこんな感じなのかな。psqlではおかげで
日本語レコードの操作が楽になったので新Bashでは
ターミナルでのマルチバイト処理がしやすくなってる
と推測。あくまで推測 (w
54:53
02/07/23 15:34.net
まてよ、psqlは前からマルチバイト扱えたっけ?
うーん、今では確認しようがない。スマソ。
55:名無しさん@お腹いっぱい。
02/07/23 15:51.net
>>54
psqlは日本語パッチがあって、それ当ててれば日本語の編集がウマーだったよ
うな気がする。
56:名無しさん@お腹いっぱい。
02/07/23 16:08.net
>>55
今のpsqlにはパッチ当ててない。それで日本語が
まともになったということは。やはりreadlineですかね。
なんかglibcといい、bashといい、マルチバイト対応が
すごいですね。ロケールの切り替えだけで多言語対応できる
Unixマンセー。
57:名無しさん@お腹いっぱい。
02/07/23 16:26.net
>>52
コンパイルオプション増えた?>自分でやりって言わないで・・
58:名無しさん@お腹いっぱい。
02/07/24 00:45.net
>>52
libcがヘボいと(たぶん)configure時に「マルチバイト駄目じゃん」と
判断されて従来通りコンパイルされるよ。
だからCitrus無しのNetBSDとかCygwinなんかだと悲しい…
59:名無しさん@お腹いっぱい。
02/09/01 12:17.net
バスケットシューズあげ
60:名無しさん@お腹いっぱい。
02/09/01 17:38.net
バトミントンシューズsage
61:名無しさん@XEmacs
02/09/01 23:31.net
>48
.inputrc に
"\C-n":history-search-forward
"\C-p":history-search-backward
とか書くとか。
62:名無しさん@お腹いっぱい。
02/09/09 11:53.net
bashのパターン照合について
複数のパターンで文字列を抽出
する方法ありましたらご指南お願いします。
(もっとも一旦変数に格納し、分ければ
いいのですが、可能ならばその方法を知りたいです。)
例えば、
$data="/export/user1/test-20020909.log"
で20020909の文字を抽出する場合、一度に
${${data##/*-}%.*}
の様にしたいのですが、
bad substitution
とエラーが出てしまいます。
63:名無しさん@お腹いっぱい。
02/09/09 12:00.net
>>62
こっちで。
シェル、オークの質問コーナー
スレリンク(unix板)
64:名無しさん@お腹いっぱい。
02/09/09 12:18.net
>>62
誘導ども。
逝ってきます。
65:名無しさん@お腹いっぱい。
02/09/17 06:57.net
補完じゃないんですけど教えてください。
emacsと同様に ALT+Backspaceで一語消したいのですが、
どうやったら良いのでしょうか?
66:名無しさん@XEmacs
02/09/17 09:41.net
>65
あり、 ALT+BS ってデフォルトで消えなかったっけ?
ALT+h なら .inputrc に下を書けばいいんだけど。。。
"\M-h":backward-kill-word
67:65
02/09/17 23:25.net
>>66
あっ、すみません!
家の中に、デフォルトで消えるbashと消えないbashがあるのに気付きました。
#うーん、なんでだろう??
68:名無しさん@XEmacs
02/09/18 04:16.net
>67
version の違いですかね?
挙動の違いといえば、チルダの展開も変わってたりしてハマりますなぁ。。。
69:67
02/09/18 04:56.net
それが、どうもバージョンじゃないみたいなんで悩んでます。(--versionしてみた)
しかも、消せるほうのbashのバイナリを消せないホストにコピーすると、ちゃーんと
消せるようになるんで、設定ファイルとかのせいでも無いみたい...
コンパイル時のオプションかと思うんですけど、もうコンパイルしたときの
作業したソースとか全部消しちゃったんで、ちゃんと動かせるオプション試行錯誤して見つけないと
確かめられなさそう...(コンパイル時のオプション情報なんてバイナリに残らないですよね...)
70:名無しさん@お腹いっぱい。
02/10/20 17:29.net
bashで
"\ep": history-search-backward
"\en": history-search-forward
をC-pとかに割り当てたい
71:名無しさん@お腹いっぱい。
02/10/20 17:49.net
cat .zsh-history |xargs ssh remote cat >> .zsh-history
72:名無しさん@お腹いっぱい。
02/10/28 10:03.net
aae
73:山崎渉
03/01/15 13:25.net
(^^)
74:山崎渉
03/03/13 18:00.net
(^^)
75:名無しさん@お腹いっぱい。
03/03/18 22:46.net
$ このス^I
このスレって、もう死に体だね!
$ このスレって、もう死に体だね!_
76:名無しさん@お腹いっぱい。
03/03/19 06:29.net
>>70
割り当てろよ
77:山崎渉
03/04/17 12:15.net
(^^)
78:あぼーん
あぼーん.net
あぼーん
79:名無しさん@Meadow
03/04/26 19:21.net
パラメータに入れた文字列を、パス展開させたいんだけど、
どうしたらようござんしょう?
例えば、
files="hoge*" && パス展開 && [ ${#files[*]} -ne 0 ]
とか、したいわけよ。
80:79
03/04/26 19:40.net
とりあえず、パス名展開はでけたが、配列になってない…(T_T)
> touch hogea hogeb hogec
> echo hoge*
hogea hogeb hogec
> files="hoge*" && echo ${#files}
5
> files="hoge*" && tmp=`echo $files` && echo ${#tmp}
17
で $files がパス名展開されてることが分かったが、
> files="hoge*" && tmp=`echo $files` && echo ${#tmp[*]}
1
むきーっ
81:79
03/04/26 20:21.net
もれはアホだー!!
> files=(hoge*) && echo ${#files[*]}
3
82:あぼーん
あぼーん.net
あぼーん
83:あぼーん
あぼーん.net
あぼーん
84:名無しさん@お腹いっぱい。
03/06/14 12:32.net
どうせならmigemo呼び出して日本語ファイル名補完とかして欲すぃ。
誰か実装してたりしませんか。
85:あぼーん
あぼーん.net
あぼーん
86:名無しさん@お腹いっぱい。
03/06/15 11:23.net
>>56
PS1= の内容については、マルチバイト文字が認識されてないっぽい。
87:名無しさん@お腹いっぱい。
03/06/18 22:47.net
menu-completeは引数を受け取れるとmanに書いてあるけど、
こういう引数付きコマンドを.inputrcで何らのキーに割り当てるにはどうするの?
色々やってみたんだが…。
88:名無しさん@お腹いっぱい。
03/07/13 22:28.net
kshとbashどちらを先に覚えた方がいいですか?
89:あぼーん
あぼーん.net
あぼーん
90:名無しさん@お腹いっぱい。
03/07/19 22:38.net
cygwinのbashには/etc/bash_completionが入ってないなー。
91:名無しさん@お腹いっぱい。
03/07/26 22:49.net
Mainte
92:名無しさん@お腹いっぱい。
03/07/31 11:23.net
bashにはtcshのコンプリート機能はないにょ?
93:名無しさん@お腹いっぱい。
03/07/31 11:28.net
bash には bash のコンプリート機能があるにょ。
94:名無しさん@お腹いっぱい。
03/07/31 12:08.net
>>93 あったにょ?知らなかったにょ
95:ぼるじょあ ◆yBEncckFOU
03/08/02 04:59.net
∧_∧ ∧_∧
ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。
=〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
= ◎―――◎ 山崎渉&ぼるじょあ
96:コンプマン
03/10/15 14:57.net
今日はすごい裏技を紹介します。
題して、 「 1から255までループ 」
まず、 1から255までの連続したファイル名を用意します。
中身は空でかまいません。
そのファイルをどこかのディレクトリに格納します。
そして、そのディレクトリに移動したら
for i in *; do echo $i; done
これでばっちり1〜255までループできますね!
【応用編】
1万回ループしたいときは、ファイルを
1〜10000まで用意するといいですよ
97:名無しさん@お腹いっぱい。
03/10/15 15:10.net
>>96
$ for i in *; do echo $i; done
1
10
100
101
102
103
104
105
106
107
108
109
11
110
111
...
先生!順番が…
98:コンプマン
03/10/15 15:13.net
>>97
新たな投稿ありがとう。 ミッションスタート!!
ファイル名を
000
001
002
・・・
254
255
と書き換えましょう
99:名無しさん@お腹いっぱい。
03/10/15 15:49.net
裏技やるのにファイル作るの面倒な人用↓
a=0;while [ $a -le "255" ];do touch $a;let a="${a}+1";done
こいつで裏技バッチリ。
100:コンプマン
03/10/15 16:53.net
応援ありがとう!!
だが、それではファイル名が>>97のようになってしまい
とても不完全なものとなるのでした。
そこで>>99を添削してみました。 caseが美しいですね。
a=1;
while [ $a -le "255" ]; do
case `echo ${#a}` in
"1") s="00$a" ;;
"2") s="0$a" ;;
"3") s="$a" ;;
esac; touch $s; a=$((a+1));
done
101:今婦てぃっく
03/10/15 18:37.net
>>100
a=0;while [ $a -le "255" ];do touch `printf %03d\\n $a` ;let a="${a}+1";done
102:今婦てぃっく
03/10/15 18:39.net
>>101
\\nいらね〜・・・touch ``なしで実験したんだよもん
103:名無しさん@お腹いっぱい。
03/10/15 18:54.net
桁数そろえるには、こんな感じかな。
for i in *;do mv $i `echo $i |sed "s/^\([0-9]\)$/00\1/;s/^\([0-9][0-9]\)$/0\1/"`;done
104:名無しさん@お腹いっぱい。
03/10/16 09:50.net
GNU coreutils の seq でいいよ...
105:コンプマン
03/10/16 10:35.net
>>104
for i in `seq -w 255`; do touch $i; done
と、こうくるわけですか。さすが グニュー使いは裏技使い!
もちろん動作も最も速くて完璧超人ですか・・・
でももしこれが 255000 だったりしたらたいへんです
なかなか始まりません。 これが今日の裏技。
106:名無しさん@お腹いっぱい。
03/10/16 10:45.net
seq -w 255000 | while read i;do echo $i;done
だと、ちっとまし?
107:今婦てぃっく
03/10/16 14:17.net
>>105
のまえにラインバッファの限界こないか?
xargsとかつかいな
108:名無しさん@お腹いっぱい。
03/10/16 14:31.net
>>104
> GNU coreutils の seq でいいよ...
zsh だとビルトインですが何か?
109:コンプマン
03/10/16 14:40.net
>>107
それは大丈夫だ。
100万個のループでも我慢して待てば動作するぞ!
だが 1000000 は 1e+06 と表現されるから注意が必要だ。
キミも渡来!
110:名無しさん@お腹いっぱい。
03/10/16 14:48.net
>>108
何でもかんでも built-in にするのキモい。
111:名無しさん@お腹いっぱい。
03/10/16 17:47.net
>>110
思想的にちょっぴり同意。
112:名無しさん@お腹いっぱい。
03/10/16 18:46.net
busybox立場無いなぁ とか思ったりしたけど バッシュレ?
113:名無しさん@お腹いっぱい。
03/10/16 19:13.net
built-inだと誇らしげに言ってるあたりがイタイね
114:名無しさん@お腹いっぱい。
03/10/16 21:03.net
void main (){}
をa.outとコンパイルして
a.out && echo "sage"
とするとsageと表示されるのですがそんなものなのですか?
返り値を返してはいないのですが。。。
不定の結果なのでしょうか?
115:名無しさん@お腹いっぱい。
03/10/16 21:26.net
>>114
./a.out; echo $?
だとどう?
116:名無しさん@お腹いっぱい。
03/10/16 23:25.net
>>110
> 何でもかんでも built-in にするのキモい。
>>113
> built-inだと誇らしげに言ってるあたりがイタイね
そうかな。coreutils, bash を両方インストールするのが無駄
117:名無しさん@お腹いっぱい。
03/10/17 01:23.net
>>116
coreutils = fileutils + textutils + sh-utils
どのみち使う。無駄なわけない
118:名無しさん@お腹いっぱい。
03/10/17 02:18.net
zsh はいつか perl も built-in にしそうだな。
119:名無しさん@お腹いっぱい。
03/10/17 02:39.net
ゆくゆくは Emacs を
120:名無しさん@お腹いっぱい。
03/10/17 02:58.net
>>117
> coreutils = fileutils + textutils + sh-utils
> どのみち使う。無駄なわけない
Linux ゆーざだけでは?
121:名無しさん@お腹いっぱい。
03/10/17 10:35.net
ああ、>>117 の 3 つがまとまった coreutils は GNU の産物だからね。
Linux 使いは coreutils パッケージとしてまとめてインストールしておいたほうが
本気で細々したプログラム群を個別にインストールしなくていいので楽。
coreutils が要らないって人は別のパッケージングや管理方法を使ってるんでしょう。たぶん。
122:名無しさん@お腹いっぱい。
03/10/17 10:39.net
>>121
> Linux 使いは coreutils パッケージとしてまとめてインストールしておいたほうが
> 本気で細々したプログラム群を個別にインストールしなくていいので楽。
板違い。
> coreutils が要らないって人は別のパッケージングや管理方法を使ってるんでしょう。たぶん。
OS 附属のものを使ってます。
123:名無しさん@お腹いっぱい。
03/10/17 14:07.net
>>112
あれは限定された環境で使うためのものじゃん。
124:名無しさん@お腹いっぱい。
03/11/10 09:22.net
補完の話じゃなくて申し訳ないが質問。
十年以上 tcsh使ってて、
たまーに Linuxとか cygwin入ってる Windowsとかで bashを使うことが
あって、そのたびに面倒だなーと思ってるんだけど
bash で tcsh の implicitcd に相当することをするにはどうするの?
(ディレクトリ名タイプだけで cdする機能)
125:名無しさん@お腹いっぱい。
03/11/10 20:22.net
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias .....='cd ../../../..'
...
126:名無しさん@お腹いっぱい。
03/11/16 20:55.net
bashが当たり前に動いてるUNIXってあるんですか?
127:名無しさん@お腹いっぱい。
03/11/16 22:07.net
linux
128:名無しさん@お腹いっぱい。
03/11/16 22:19.net
cygwin
129:名無しさん@お腹いっぱい。
03/11/16 22:24.net
>>126
ずいぶん前から Solaris にも入ってるよ。
130:名無しさん@お腹いっぱい。
03/11/17 21:27.net
solarisですか!勉強になりました。調べてみます。
131:仕様書無しさん
04/02/15 19:32.net
補完の質問ではないのですが、他にbashのスレが無いようなので
ここに書かせていただきます。
ls -l | grep '^d'
のようなパイプラインの実現方法なのですが、
@foo.shのようなファイルに記述してそこにパスを通す
A.bashrcで関数function foo{...}と定義する
上記の@とAのどちらが適切なのでしょうか。
132:名無しさん@お腹いっぱい。
04/02/15 20:20.net
・シェル関数はカレントシェルのプロセス内で実行される
・シェルスクリプトはサブシェル内で実行される
ls -a | grep なんとか
というコマンド列はどっちでも変わらない。
133:名無しさん@お腹いっぱい。
04/02/15 21:52.net
>>131
どちらがといわれても、どっちも空白にしか見えない。
134:コンプマン
04/03/01 11:40.net
今日はbashのif文で質問だ!
if文は便利だが、AND条件でちょっと困ったことがある
if [ "$HOGE"="hoge" and "$PIYO"="piyo" ]; then 〜
みたいなことをやりたいときは どうするのが賢いかな?
if文if文、またif文!?
135:名無しさん@お腹いっぱい。
04/03/01 11:51.net
あきらめて下さい。
136:名無しさん@お腹いっぱい。
04/03/01 12:08.net
if [ list1 -a list2 ]; then 〜
137:名無しさん@お腹いっぱい。
04/03/01 13:00.net
>>134
if [ "$HOGE" = hoge ] && [ "$PIYO" = piyo ]; then
補完関係ないし。
138:名無しさん@お腹いっぱい。
04/03/01 13:20.net
[ が何だかわかってるのかな
139:コンプマン
04/03/01 13:45.net
>>138
今知った! 賢くなった!
>>137
ありがとう! 紳士よ!
140:名無しさん@お腹いっぱい。
04/03/01 13:54.net
>>134
help test
or
man test
141:名無しさん@お腹いっぱい。
04/04/13 13:15.net
if文で文字列の辞書比較
142:名無しさん@お腹いっぱい。
04/04/14 15:15.net
if文で文字列の辞書比較
はどうやら出来そうも無い
143:名無しさん@お腹いっぱい。
04/04/17 14:48.net
if文で文字列の辞書比較
はどうやら出来そうも無い
別の方法で実現することに
144:名無しさん@お腹いっぱい。
04/04/17 15:01.net
if文で文字列の辞書比較
はどうやら出来そうも無い
別の方法で実現することに
したいと僕のアナルが報告
145:名無しさん@お腹いっぱい。
04/04/27 21:52.net
if文で文字列の辞書比較
はどうやら出来そうも無い
別の方法で実現することに
したいと僕のアナルが報告
するためにローションを
146:名無しさん@お腹いっぱい。
04/05/01 16:45.net
if文で文字列の辞書比較
はどうやら出来そうも無い
別の方法で実現することに
したいと僕のアナルが報告
するためにローションを
ぬ<tab>
ぬか ぬっころす ぬりたくり ぬるぽ
if文で文字列の辞書比較
はどうやら出来そうも無い
別の方法で実現することに
したいと僕のアナルが報告
するためにローションを
ぬ
147:名無しさん@お腹いっぱい。
04/05/01 22:55.net
>146 ガッ!! AA(ry
148:名無しさん@お腹いっぱい。
04/05/11 10:20.net
uniqするにはsortしなければならないけど
sortしてuniqしたあと、sort前に戻したい
というか、sortなしでuniqしたい
どうしたらいいかな?
自分で書いたらかっこよくなかった
スタイリッシュな方法キボン
149:名無しさん@お腹いっぱい。
04/05/11 10:24.net
cshがあれば他はいらなくね?
ぬるぽ
150:名無しさん@お腹いっぱい。
04/05/11 10:59.net
番号つけてsortしてuniqして番号順にsortして番号消すってのが、
かっこよくない方法か?>>148
151:名無しさん@お腹いっぱい。
04/05/11 11:03.net
補完と関係あるのか?
152:名無しさん@お腹いっぱい。
04/05/11 11:41.net
>>150
番号つけてソートしたら番号順にソートされて
つまりそれってソートされないんじゃ?
153:名無しさん@お腹いっぱい。
04/05/11 11:56.net
>>152
番号以外の部分でソートするってことです。
154:名無しさん@お腹いっぱい。
04/05/11 12:21.net
丁寧にソートするですね
そーっと
ウェーハッハッハ
155:名無しさん@お腹いっぱい。
04/05/11 12:23.net
tcsh
156:名無しさん@お腹いっぱい。
04/05/11 17:18.net
ソートしてみた。
視覚化になんとJavaVMを使用しています。
* #!/usr/local/bin/bash
* declare -a array[15];
* while :; do
* array=(`cat /dev/urandom|od -tu1 \
* | sed -e 's/^..........//g'| head -n 1`);
* for ((I = 0;I < 16; I++)); do
* echo -n " ${array[${I}]}";
* done
* echo -e "";
* for ((I = 0;I < 15; I++)); do
* for ((J = 15; J > ${I}; J--)); do
* if [ ${array[J - 1]} -gt ${array[J]} ]; then
* tmp=${array[J - 1]};
* array[J - 1]=${array[J]};
* array[J]=${tmp};
* fi
* for ((K = 0;K < 16; K++)); do
* echo -n " ${array[${K}]}";
* done
* if [ ${I} -lt 14 ]; then
* echo -n $'\r';
* fi
* java -version > /dev/null 2>&1;
* done
* done
* echo -e '\n' '\n';
* done
157:名無しさん@お腹いっぱい。
04/05/13 05:48.net
csh, tcshはうんこ
158:名無しさん@お腹いっぱい。
04/06/09 00:40.net
バージョン 2.05bで、
コマンド ./bin/mycommand を補間しようとして、
./b のあとに補完すると、
./bin を補完してくれるのですが、
「n」のあとに余分なスペースを一つ入れられてしまいます。
期待しているのは
./bin/ と(スペースなしで)補完してくれることなんですが、
どう設定すればいいかご存知の方、
教えて下さい。
159:名無しさん@お腹いっぱい。
04/06/09 01:43.net
zsh を使う
160:名無しさん@お腹いっぱい。
04/06/14 02:44.net
>>158
そういう設定にしちゃってるんじゃない?
新しいアカウントでもそうなる?
setやcompleteの出力を確認してみてみ。
161:名無しさん@お腹いっぱい。
04/06/16 03:08.net
>>160
設定の問題ではなさそうで、
2.05aでは問題なしだった。
162:名無しさん@お腹いっぱい。
04/06/16 03:28.net
うちじゃ 2.05b でも、たとえば ls ./b <tab> で ls ./bin/ になるよ。
コマンドに対して complete でなんか設定しているんじゃないの?
163:名無しさん@お腹いっぱい。
04/06/16 03:33.net
>>162
コマンドの引数じゃなくてコマンドそのものの補完の時。
というか公式パッチ確かめたら、出てました。
bash205b-003でした。
164:名無しさん@お腹いっぱい。
04/07/29 22:01.net
bash 3は{1..10}を展開するようになったんだね。
**/Makefileも展開して欲しいなあ。
165:名無しさん@お腹いっぱい。
04/07/30 00:06.net
>>164
でも{01..10}は展開してくれないんだ…
よって価値無し(wgetでアレなことするには)。
166:名無しさん@お腹いっぱい。
04/07/30 11:24.net
$ for i in `seq -w 1 10`;do wget URLリンク(www.example.com)
seqがないシステムだとどうやって苧としてるの?>all
167:名無しさん@お腹いっぱい。
04/07/30 11:42.net
>>166
man 1 curl
168:166
04/07/30 11:49.net
>>167
curlだとそんな芸当ができたのかorz
169:名無しさん@お腹いっぱい。
04/07/30 11:52.net
seqがないシステムって多いの?
170:名無しさん@お腹いっぱい。
04/08/27 14:59.net
>>166
まず、 1から255までの連続したファイル名を用意し
171:名無しさん@お腹いっぱい。
04/08/27 15:00.net
コマンドの実行結果って何で見れるんだっけ?
exit(x); とかのxの値のことね
$!だと思ったけどなんか違った
172:名無しさん@お腹いっぱい。
04/08/27 15:49.net
manくらい読めよ。
$?な
173:名無しさん@お腹いっぱい。
04/08/27 16:53.net
for ((i=0; i<20; i=i+1));do
wget URLリンク(www.hoge.com) "%02d"`.jpg $i;
done
174:名無しさん@お腹いっぱい。
04/08/27 16:55.net
あう...
for ((i=0; i<20; i=i+1));
do wget URLリンク(www.hoge.com) "%02d\n" $i`.jpg;
done
175:名無しさん@お腹いっぱい。
04/08/27 17:44.net
>>172
URLリンク(www.linux.or.jp)
書いてないんだよね
Linuxはウンコなのかなぁ・・・
176:名無しさん@お腹いっぱい。
04/08/27 18:29.net
>>175
URLリンク(www.linux.or.jp)
あるじゃん。
bash は Linux 専用じゃないよ。
177:名無しさん@お腹いっぱい。
04/08/27 18:43.net
>>174
curl 'URLリンク(www.example.com)' -o '#1.jpg'
178:名無しさん@お腹いっぱい。
04/09/08 16:22.net
perlは反則?
$ perl -e "('001'..'100'){s#(.*)#`wget URLリンク(www.hoge.com)"
179:名無しさん@お腹いっぱい。
04/09/08 16:37.net
>>178 スレタイ読んでみれば。
180:名無しさん@お腹いっぱい。
04/09/08 21:22.net
こっちでやろうよ。
連番のH画像を一気にダウンロードする
スレリンク(unix板)
181:名無しさん@お腹いっぱい。
04/09/16 23:17:08.net
for i in *
do
done
ではエラーになってしまいます。
bashで空文はどうすればいいのでしょうか?
182:名無しさん@お腹いっぱい。
04/09/16 23:18:44.net
>>181
for i in *
do
:
done
183:名無しさん@お腹いっぱい。
04/09/17 01:07:56.net
bash-2.05b$ たまには
たまには補完スレらしく補完してみたり。 たまには糞スレを荒らしてみたり。
bash-2.05b$ たまには
184:名無しさん@お腹いっぱい。
04/09/19 22:09:56.net
$( < /etc/passwd ) と $( cat /etc/passwd )
は同じ事ですか?
アドバイスお願いします。
185:名無しさん@お腹いっぱい。
04/09/19 22:24:29.net
>>184
違う
catという名前のrootにsetuidされたrmコマンドがパスの通ったところの最初にあったら怖いだろ
186:名無しさん@お腹いっぱい。
04/09/19 22:49:57.net
>>185
レスありがとうございます。
具体的には$( < /etc/passwd )の方が安全と言うことなのでしょうか?
いまいちつかめないのですが・・・
187:名無しさん@お腹いっぱい。
04/09/20 03:18:38.net
全然違います。
188:名無しさん@お腹いっぱい。
04/09/21 23:12:43.net
ところで小数の計算ってどうやるの?
for(i=0.0;i<10.0;i=i+0.1){}みたいにしたいのに、やり方がさっぱりわからん。
どなたかやり方教えてください。
189:名無しさん@お腹いっぱい。
04/09/21 23:53:31.net
>>188
10倍して整数で計算しようぜ
190:名無しさん@お腹いっぱい。
04/09/22 00:29:58.net
Cシェルでファイルを読み込む方法を教えて下さい。
191:名無しさん@お腹いっぱい。
04/09/22 00:51:09.net
?
192:名無しさん@お腹いっぱい。
04/09/22 01:55:54.net
>>190
set `cat hoge`
193:名無しさん@お腹いっぱい。
04/09/22 08:06:34.net
>>190
あなたの想定している「ファイルを読み込む」を説明してください.
194:名無しさん@お腹いっぱい。
04/09/22 13:04:13.net
>>188
整数部分と小数部分でダブルループにする
195:188
04/09/22 22:15:29.net
レスしてくれた人、ありがとうございます。
参考にさせていただきます。
196:名無しさん@お腹いっぱい。
04/09/22 23:15:01.net
>>192
>>192
神様へ。
レスありがとうございます。
何がやりたいかというとですねぇ・・・
Cシェルで、ある実行ファイルを実行したいときに、それに渡すためのパラメタを、
ファイルから読み込みたいということなんです。
イメージとして、
// イメージここから
#!/bin/csh
read init.ini // iniファイルを読み込む
Hoge $aaa // 実行ファイルHogeに対して、読み込んだinit.iniに記述している項目を$aaaに設定し、
// パラメタとして指定するということです。
// イメージここまで
197:名無しさん@お腹いっぱい。
04/09/23 09:41:02.net
>>196
Hoge `cat init.ini`
198:名無しさん@お腹いっぱい。
05/01/18 18:03:46 .net
aliasで外部アプリ起動時に引数を渡すには
スクリプトを書く以外に方法はありませんか?
alias hage='/d/program\ files/hage/hage.exe $* &'
みたいなaliasを登録したいんですけど。
199:名無しさん@お腹いっぱい。
05/01/21 19:38:31 .net
i-searchで履歴を検索する時に大文字小文字を区別できませんか?
TABでmenu-completeに設定してるんですけど
*abc*<TAB>
等と入力するのが面倒なので
TABで先頭一致補完、Ctrl+TABでインクリメンタル補完にしたいんですけど
ワイルドカードを使わずにインクリメンタル補完する方法ってありますか?
200:名無しさん@お腹いっぱい。
05/01/21 19:40:27 .net
うぁ読み難いですね。
質問したいことは二つあります。
1.i-searchで履歴を検索する時に大文字小文字を区別できませんか?
2.TABでmenu-completeに設定してるんですけど
*abc*<TAB>
等と入力するのが面倒なので
TABで先頭一致補完、Ctrl+TABでインクリメンタル補完にしたいんですけど
ワイルドカードを使わずにインクリメンタル補完する方法ってありますか?
よろしくお願いします。
201:名無しさん@お腹いっぱい。
05/01/21 19:41:43 .net
度々すいません。訂正です。
うぁ読み難いですね。
質問したいことは二つあります。
1.i-searchで履歴を検索する時に大文字小文字を区別できませんか?
↓
1.i-searchで履歴を検索する時に大文字小文字を区別しないようにできませんか?
202:名無しさん@お腹いっぱい。
05/01/23 01:21:31 .net
タブを押したとき、直前の単語に * が含まれていればマッチするもの全てに展開、
含まれていなければ候補を1つずつ回って行くという挙動にできますか?
203:名無しさん@お腹いっぱい。
05/01/23 10:23:22 .net
>>202
zsh に乗り換える
204:名無しさん@お腹いっぱい。
05/01/23 11:01:14 .net
展開うざくね?
205:名無しさん@お腹いっぱい。
05/01/28 23:33:32 .net
### で始まる文字列が来るまで
テキストを表示する
というスクリプトを書きたいんだけど
最も短く記述するには
なにがいいかな
206:名無しさん@お腹いっぱい。
05/01/28 23:39:05 .net
>>205
bashとの関係は・・・
漏れならこんなの書きそうだが
gawk '/^###/{exit} {print $0}' ファイル名
207:名無しさん@お腹いっぱい。
05/01/29 00:20:58 .net
sed -n -e '/^###/q' -e p
の方が短い
208:名無しさん@お腹いっぱい。
05/01/29 00:59:33 .net
i-searchで履歴を検索する時に大文字小文字を区別しないようにできませんか?
209:名無しさん@お腹いっぱい。
05/02/16 23:13:21 .net
ヒアドキュメント内で痴漢したいんですけど、どうしたらいいですか?
こんな感じで使いたいですが
name="usagi"
cat > tmp.txt <<'SAILORMOON'
tsukino $name
SAILORMOON
210:名無しさん@お腹いっぱい。
05/02/17 09:51:42 .net
>>209
パラメータ展開したいんなら、
終了文字列をクォートしちゃいかん。
name="usagi"
cat > tmp.txt << SAILORMOON
tsukino $name
SAILORMOON
あと、bash補完の話題じゃないので、シェルスクリプトスレに書いてくれ。
211:名無しさん@お腹いっぱい。
05/02/17 13:16:48 .net
>>210
それだと
tsukino usagi
にならず
tsukino $name
のままなんですよ
あと、続きはシェルスクリプトスレを探してみます
212:名無しさん@お腹いっぱい。
05/02/17 13:37:17 .net
>>211
んなこたぁない。
cat > tmp.txt << 'SAILORMOON'
を、↓
cat > tmp.txt << SAILORMOON
にしてもう一回やってみろ。
(どこが違ってるかわかってる?)
ちゃんと、
tsukino usagi
と表示されるよ。
213:名無しさん@お腹いっぱい。
05/02/17 15:17:40 .net
できtらー!ありがとー!
214:名無しさん@お腹いっぱい。
05/02/18 00:30:45 .net
Windowsのコマンドプロンプトのように
ファイル名やパス名を補完した結果の文字列を
ダブルクォートで囲むようにしたいのですが、
どうしたらよいでしょうか?
cd My<tab>
↓
cd "My Documents"
completeコマンドでprefix,suffixにダブルクォートを指定しても
うまくいきません・・・
215:名無しさん@お腹いっぱい。
05/02/20 16:56:40 .net
zshなら勝手になる
216:名無しさん@お腹いっぱい。
05/02/20 17:30:42 .net
>>214
cd "My<tab>
じゃあダメかね?
217:名無しさん@お腹いっぱい。
05/02/21 22:37:05 .net
>>214
cd My¥ Documents となると思ふけど,それぢゃ具合悪くって?
218:名無しさん@お腹いっぱい。
05/02/21 22:59:57 .net
レスどうもー。
>>215
できればbashでやりたいな、と。
>>216
その"を打つのが面倒なので補完したいのです・・・。
>>217
具合悪いです・・・。
cygwinからwinアプリを起動する時の引数として
それだとうまくいかないんですよねぇ。
219:名無しさん@お腹いっぱい。
05/02/22 02:30:35 .net
フォルダ名変えちまえ
220:名無しさん@お腹いっぱい。
05/02/22 02:47:09 .net
function qwinpath { cygpath -mal "$@" | while read; do f=${REPLY//\//\\}; echo \"$f\"; done }
function amp { winamp $(qwinpath "$@" ) & }
cygwinスレでwinampにスペースを含むパスを送りたいから助けてくれと書き込んだ時に教えてもらった。
>cygwinからwinアプリを起動する時の引数
を用意してくれる。
221:名無しさん@お腹いっぱい。
05/02/25 20:42:15 .net
>>220
ありがとうございます。
しかし、思ったような動作はしませんでした。
うまい方法はないようですね。
bashを直接いじることにします。
222:名無しさん@お腹いっぱい。
05/03/12 22:46:10 .net
A.txt というファイルに、
AAA='/home/user/sample.conf'
と書かれている行があって、これの引数部分を変数に代入するのに
PARA=`sed -ne "s/^AAA.*'\(.*\)'/\1/p" A.txt`
とやると一応、値の後ろに一文字空白がくっついてしまいます。
これを取るにはどうすれば良いのでしょうか。
223:名無しさん@お腹いっぱい。
05/03/12 23:51:21 .net
>>222
PARA=`sed -ne "s/^AAA.*'\(.*\)' */\1/p" A.txt`
224:名無しさん@お腹いっぱい。
05/03/13 00:13:47 .net
>>223
bash か sed か、どちらのミスなのか迷ってたのですが、
sedの方でしたか。
上手く行きました!ありがとうございます。
225:名無しさん@お腹いっぱい。
05/03/17 14:44:29 .net
sedでカンマの前に値が入ってなかったらnullという文字列を入れる処理を作っているのですが
どうもうまくいきません。
実際に打ち込んでるコマンドは
sed 's/,[:space:]*,/,null,/g' < a > b
aのファイルには
a,b,,d,e,f,,
,,,,,,,,,,
となっています。
すみませんが誰かご教授お願いします。
226:名無しさん@お腹いっぱい。
05/03/17 15:25:05 .net
期待している出力例がわかりまへん。
227:225
05/03/17 16:04:49 .net
すいません
期待してる出力例は
225にあるaのファイルを
a,b,null,d,e,f,null,null
null,null,null,null,null,null,null,null,null,null,null
としてb出力するようになるようにしたいです。
申し訳ありません。
228:名無しさん@お腹いっぱい。
05/03/17 16:39:10 .net
>>225
あまりきれいじゃないが:
sed -e 's/.*/,&,/' -e ':1' -e 's/,[[:space:]]*,/,null,/' -e 't 1' -e 's/,\(.*\),/\1/'
229:225
05/03/17 16:45:45 .net
>>228様
まだ、駆け出しですが是非参考にさせてもらいます。
本当にありがとうございます。
sage忘れすいません。
230:(´д`)ノ ◆zAyjllBm/g
05/03/21 18:01:04 .net
$ cd // && pwd
裏面に行けるズラ
231:名無しさん@お腹いっぱい。
05/03/21 18:13:26 .net
$ cd / && pwd
/
$ cd // && pwd
//
$ cd /// && pwd
/
裏面キター
232:名無しさん@お腹いっぱい。
05/03/21 18:33:02 .net
ls //bin
233:(´д`)ノ ◆zAyjllBm/g
05/03/21 18:35:58 .net
[root@hoge /]$ find ./ -name //
[root@hoge /]$
[root@hoge /]$ mkdir /
mkdir: ディレクトリ `//' を作成できません: ファイルが存在します
[root@hoge /]$ touch //
touch: `//' のタイムスタンプを設定中: 許可がありません
[root@hoge /]$ cd //
[root@hoge //]$
('A')....w
rm ーfr //
はこわいからできない。
234:(´д`)ノ ◆zAyjllBm/g
05/03/21 18:47:34 .net
ごめんうそついた。
ほんとは一般ユーザでやった
ノシ
235:名無しさん@お腹いっぱい。
05/03/21 19:19:11 .net
ダブった / はカウントされないだけ
236:名無しさん@お腹いっぱい。
05/03/21 19:46:39 .net
>>231 みたいに一貫性がないのは、実害はないけどバグでしょ。
237:名無しさん@お腹いっぱい。
05/03/21 21:50:28 .net
>>236
仕様。
URLリンク(www.faqs.org)
の E10
238:名無しさん@お腹いっぱい。
05/03/21 22:45:22 .net
仕様という名のバグだろ。
Q.□ボタンが凹むのですが
A.仕様です
アホか
239:名無しさん@お腹いっぱい。
05/03/21 23:28:17 .net
>>238
>>237 のリンク先読んだ?
意図てきにそうしてあるよ。
240:名無しさん@お腹いっぱい。
05/03/21 23:39:04 .net
> This is, I presume, for historical compatibility. Certain versions of
> Unix, and early network file systems, used paths of the form
> //hostname/path to access `path' on server `hostname'.
み、見たことねぇ……(;´Д`)
241:名無しさん@お腹いっぱい。
05/04/04 11:46:01 .net
bashdbって使ったことありますか?
簡単なステップ実行できますね。
242:名無しさん@お腹いっぱい。
05/04/04 14:12:45 .net
>>241
もっと詳しく
243:名無しさん@お腹いっぱい。
05/04/04 14:22:16 .net
>>242
こんな感じ。
Administrator[ 2:22PM]% bashdb a.sh M-SAKAI1:~
Bash Debugger version 1.2.4
Reading source from file: a.sh
Stopped at line 3
a.sh:3 >ls
bashdb> ?
bashdb commands:
break N set breakpoint at line N
break list breakpoints & break condition
condition foo set break condition to foo
condition clear break condition
delete N clear breakpoint at line N
delete clear all breakpoints
display EXP evaluate and display EXP for each debug step
display show a list of display expressions
undisplay N remove display expression N
list N M display all lines of script between N and M
list N display 5 lines of script either side of line N
list display 5 lines if script either side of current line
continue continue execution upto next breakpoint
next [N] execute [N] statements (default 1)
print expr prints the value of an expression
trace toggle execution trace on/off
ftrace [-u] func make the debugger step into function FUNC
(-u turns off tracing FUNC)
help print this menu
! string passes string to a shell
quit quit
244:名無しさん@お腹いっぱい。
05/04/04 14:35:38 .net
>>243
すばらしそうだな
245:名無しさん@お腹いっぱい。
05/04/04 15:24:02 .net
>>244
ソースの./bash-3.0/examples/bashdb/bashdbに入ってるよ。
引数にシェルスクリプトを指定すればすぐ使えます。
246:名無しさん@お腹いっぱい。
05/05/01 22:32:09 .net
-aalias
-bbuiltin
-ccommand
-ddirectory
-eexport
-ffile
-ggroup
-jjob
-kkeyword
-sservice
-uuser
-vvariable
247:名無しさん@お腹いっぱい。
05/05/08 23:07:20 .net
bashのコマンドラインからコマンド打つときの
引数の長さや数の上限は、環境変数で変更できるの?
248:名無しさん@お腹いっぱい。
05/05/15 20:29:49 .net
bashの保管ってコンテキストで変えられるの?
たとえば
man TAB
だとmanのあるやつがリストアップとか
249:名無しさん@お腹いっぱい。
05/05/15 21:11:28 .net
>>248
URLリンク(www.google.no) の9番目
250:名無しさん@お腹いっぱい。
05/05/15 21:37:40 .net
プログラマぶるか
251:名無しさん@お腹いっぱい。
05/05/24 18:02:54 .net
bashでファイルをインクルードする方法ってないでしょうか?
Aというファイルに関数abcというのがあり、
BというスクリプトからAの中にある関数abcを呼び出したいんですが
検索しても見つからなかったのでご教授お願いします。
252:名無しさん@お腹いっぱい。
05/05/24 18:10:25 .net
>>251
.とか。
253:名無しさん@お腹いっぱい。
05/05/25 09:02:06 .net
>>251
ソース
254:名無しさん@お腹いっぱい。
05/05/25 17:32:54 .net
初心者です。251がどこを検索したのか知りたいんですが教えて下さい。
255:名無しさん@お腹いっぱい。
05/05/25 17:55:22 .net
>>254
このスレ
256:名無しさん@お腹いっぱい。
05/05/26 14:04:15 .net
タブ補完でディレクトリを手繰るとき、ディレクトリがシンボリックリンクだと
2回タブキーを押さないといけないのがうざったいですが、なんとかなりませんか?
bash2.05です。昔は、普通のディレクトリでもディレクトリへのシンボリックリンクでも
タブ1回で済んでいたような気がします。
257:名無しさん@お腹いっぱい。
05/05/29 13:14:08 .net
>>256
echo set mark-symlinked-directories on >> ~/.inputrc
258:名無しさん@お腹いっぱい。
05/07/07 10:34:34 .net
whichコマンドでjavacを指定すると
/usr/fuga/bin/javac
となるんですが、
これを
/usr/java/j2sdk1.4.2_05/bin/javac
に変更したいのですが、どうすればよいでしょうか?
.bash_profileの中身には
PATH=$PATH:$HOME/bin
export PATH=$PATH:$JAVA_HOME/bin
($HOMEはfuga)
となっていますが、これは変えたくないのですが・・・
ご教授お願いします。
259:名無しさん@お腹いっぱい。
05/07/07 10:36:23 .net
>>258
alias javac=/usr/java/j2sdk1.4.2_05/bin/javac
bash なら which より type 使え。
260:七資産@尾名課一敗
05/08/06 13:07:42 .net
bash の Trap 設定ってデフォルトで以下が入ってしまうのは?
--------------------------
bash$ trap
trap -- '' SIGINT
trap -- '2' SIGQUIT
bash$
--------------------------
何かの罠?
Solaris8 (SPARC)です。
--------------------------
$ pkginfo -l SMCbash
PKGINST: SMCbash
NAME: bash
CATEGORY: application
ARCH: sparc
VERSION: 3.0
BASEDIR: /usr/local
VENDOR: FSF
PSTAMP: Steve Christensen
INSTDATE: x月 xx 2005 hh:mm
EMAIL: steve@smc.vnet.net
STATUS: 完全にインストールされました。
FILES: 261 installed pathnames
5 shared pathnames
22 directories
21 executables
16794 blocks used (approx)
$
--------------------------
261:名無しさん@お腹いっぱい。
05/08/06 14:08:39 .net
>>260
パッチあてれ。
262:名無しさん@お腹いっぱい。
05/08/06 14:09:38 .net
>>260
/etc/profile
263:
05/10/20 20:46:12 .net
起動したら最後PID見てkillするしか止める方法が無いプログラムの
start、stopをbashで書こうと思っているのですが(XXXXctlみたいな奴です)
PIDを取得するのに良い方法はあるんでしょうか?
今は$(ps -ef | grep プログラム名 | cut -c 9-14 | sed -e "s/\s//g")とかやって
配列に突っ込んでるんですが、、、
そもそもpsの出力って固定長でしたっけ?
ちなみにOSはRHES3です
264:名無しさん@お腹いっぱい。
05/10/20 22:13:22 .net
>>263
$!
265:名無しさん@お腹いっぱい。
05/11/05 12:15:34 .net
>>263
お前それ板違いだろ。コママンドライン補完でもないし…
/FYI/ pgrepが入っているはずだよ。
266:名無しさん@お腹いっぱい。
05/12/25 11:37:35 .net
~/.inputrc に
"\M-p": history-search-backward
"\M-n": history-search-forward
と書いてあるんだが、3.1 にしたら効かなくなったみたい。
"\ep": history-search-backward
"\en": history-search-forward
なら
267:名無しさん@お腹いっぱい。
06/01/20 22:53:24 .net
$ man find -print0
man にイタズラできるズラ
268:名無しさん@お腹いっぱい。
06/02/13 06:13:36 .net
zsh が流行りだけど漏れは bash も軽くて好きだ。補完は…
shopt -s hostcomplete
complete -d cd pushd rmdir
complete -c type which man
これくらいしかやってない('A')
しかしデフォルトでドットファイルが補完対象になるのはちょっとウザいな。
これを止めさせる方法誰か知らないかい?
269:名無しさん@お腹いっぱい。
06/02/13 06:21:37 .net
ぐわ、自己解決だスマソ
~/.inputrc に
set match-hidden-files off
を加えればいいようだ。
270:名無しさん@お腹いっぱい。
06/02/13 11:38:34 .net
Tab補完候補をカラー表示したくてzsh使ってるが
ホントにbashの方が軽いんだろうか?
271:名無しさん@お腹いっぱい。
06/03/25 01:58:40 .net
zshスレで出てきたやつをパクッて改造しただけなんだが
function cd {
if builtin pushd ${1:-$HOME} > /dev/null ; then
if [ $(/bin/ls $argv |wc -l) -le 50 ] ; then
>---/bin/ls -F
else
>---echo "many files exists"
fi
fi
}
function pd {
builtin pushd +1 > /dev/null
pwd
/bin/ls -F
}
function nd {
builtin pushd -0 > /dev/null
pwd
/bin/ls -F
}
272:名無しさん@お腹いっぱい。
06/03/25 15:16:52 .net
ずんwikiにいろいろ書いといた。
変だったら直しておいて。
273:名無しさん@お腹いっぱい。
06/04/05 14:53:52 .net
bashって、zshみたいに、
**/Imakefileって、`find . -name Imakefile`に相当すること出来ないの?
274:名無しさん@お腹いっぱい。
06/04/21 13:46:32 .net
>>263
ps -C プログラム名 -o pid=
275:名無しさん@お腹いっぱい。
06/08/03 23:08:47 .net
cd の補完候補に$CDPATHを含めたかったので
bash_completionから↓この辺だけ.bashrcにコピペしたのですが
complete_cdpath() { ... }
complete -F complete_cdpath cd
_cd() {... }
if shopt -q cdable_vars; then
complete -v -F _cd $nospace $filenames cd
else
complete -F _cd $nospace $filenames cd
fi
こんなエラーが出てしまいます。
bash: ./.bashrc: line 171: syntax error in conditional expression: unexpected token `('
bash: ./.bashrc: line 171: syntax error near `?(\'
bash: ./.bashrc: line 171: ` if [[ "$cur" == ?(\\)\$* ]]; then'
. bash_completion するとエラーはでないのですが、
どう直せばいいんでしょうか?
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
33日前に更新/88 KB
担当:undef