bashで補完スレ
- 1 :complete:02/02/07 03:16.net
- bash2で補完機能が強化されているようですが
皆さんいかがお過ごしでしょうか?
- 2 :名無しさん@お腹いっぱい。:02/02/07 03:17.net
- 2Get
- 3 :名無しさん@Emacs:02/02/07 03:20.net
- >>1
> bash2で補完機能が強化されているようですが
> 皆さんいかがお過ごしでしょうか?
氏ね
- 4 :名無しさん@お腹いっぱい。:02/02/07 03:24.net
- complete -d cd
complete -c man
complete -u {su,finger}
- 5 :名無しさん@お腹いっぱい。:02/02/07 07:59.net
- autoload -U compinit;compinit
- 6 :名無しさん@お腹いっぱい。:02/02/08 00:49.net
- gccの引数として*.cを補完させたいときどうすればいいの?
- 7 :名無しさん@お腹いっぱい。:02/02/08 15:20.net
- >>6
漏れも教えてほすぃ
- 8 :名無しさん@お腹いっぱい。:02/02/08 15:31.net
- mv !$ ~/trash
みたいなAlias書きたいのですが、、、
どうかいたらいいですかね?
- 9 :名無しさん┃】【┃Dolby:02/02/08 16:29.net
- >>6 bash-2.0.5aの
examples/complete/complete* を眺めた感じでは
complete -f -X '!*.c' gcc
だと思う。誰か試してくれ
- 10 :名無しさん@お腹いっぱい。:02/02/09 07:07.net
- >>8
!$が何か知りませんが
function rm () { command mv $@ ~/trash/ ; }
とかどうでしょう?
rmとmvのオプションの違いとかを吸収していませんが
>>9
カレントディレクトリのファイルはうまく補完できるみたいです
lprとかで印刷するときなどにディレクトリ名も補完しながら
探せると便利だと思うんですが
complete -f -X'!*.ps' lpr
と真似してみたところディレクトリは補完されないようです
- 11 :名無しさん@お腹いっぱい。:02/02/09 13:59.net
- >>10
rm -r怒られるのちと痛いんでsedかawkでちょっとだけ
引数修正したいね。
- 12 :名無しさん@お腹いっぱい。:02/02/10 01:03.net
- bashよりzshつかうべき?
- 13 :名無しさん@お腹いっぱい。:02/02/10 08:05.net
- >>12
悩むなら bash より zsh 使えば良い。
- 14 :名無しさん@お腹いっぱい。:02/02/10 21:30.net
- っつー事で zsh スレ
http://pc.2ch.net/test/read.cgi/unix/990283346/
- 15 :名無しさん@お腹いっぱい。:02/02/11 02:56.net
- >>14
そりゃ反則ですよ
- 16 :名無しさん@お腹いっぱい。:02/02/12 04:07.net
- bash2って何処で手にはいるの?
- 17 :名無しさん@お腹いっぱい。:02/02/12 04:22.net
- >>16
FreeBSDやLinuxのほとんどのディストリビューションに
はいってますよ。
- 18 :名無しさん@お腹いっぱい。:02/02/14 02:46.net
- bash2補完機能もっとがんばれage
- 19 :名無しさん@お腹いっぱい。:02/02/21 00:20.net
- ええと、自慢の.bashrcをアプし合うスレはここですか?
- 20 :名無しさん@お腹いっぱい。:02/02/21 04:59.net
- >>19
いいえ。ゴミなら/dev/nullにどうぞ。
- 21 :名無しさん@お腹いっぱい。:02/02/21 06:37.net
- おまえらのシステムにはこういうゴミが有りますか?
/usr/man/man1/..1.gz
/usr/man/man1/:.1.gz
- 22 :名無しさん@お腹いっぱい。:02/02/21 07:48.net
- complete: usage: complete [-abcdefjkvu] [-pr]
[-A action] [-G globpat] [-W wordlist] [-P prefix]
[-S suffix] [-X filterpat] [-F function] [-C command] [name ...]
使い方が判らんのれす
- 23 :名無しさん@お腹いっぱい。:02/02/22 00:03.net
- >>19
.bashrc
とりあえずネラーなら
MAILPATH="/var/mail/mona?メール キタ━━━━━━(゜∀゜)━━━━━━ !!!!! "
MAILCHECK=5
だろう。メールボックスのパスは自分で変えろよ。
- 24 :名無しさん@お腹いっぱい。:02/02/23 17:30.net
- >>22
禿道
- 25 :名無しさん@お腹いっぱい。:02/02/24 00:35.net
- man bash2 に結構書いてあった。
しかし -C の挙動が理解できない。
- 26 :名無しさん@お腹いっぱい。:02/02/24 00:36.net
- スクリプトとかで /bin/bash が使われた時に
complete 無いぞ メッセージが出るんで
[ "$BASH_VERSINFO" = "2" ] で回避してみた。
- 27 :名無しさん@お腹いっぱい。:02/02/27 23:17.net
- http://www.KU3G.org/negi/diary/?20020222#200202222
ここで少しだけ紹介されていた。ここにあるリンク先
http://www.caliban.org/bash/index.shtml#completion
にあるbash-completion-20020225.tar.gzのなかにたくさん
補完候補があったよ。但し、2.05以降でしか使えないみたい
だから2.04とかのひとはがんばってgoogleとかで探さないとね。
- 28 :名無しさん@お腹いっぱい。:02/03/01 11:58.net
- >>27
ありがとうage
- 29 :名無しさん@お腹いっぱい。:02/03/03 12:44.net
- >>26
対話的利用時の設定は、
PS1が設定されている場合だけ行うのが、Bourne系shellの流儀です。
if [ ${PS1:-not_interactive} = not_interactive ]; the
対話的利用時の設定(alias,completeなど)
fi
こうしないと別の人間が/のscriptを使った時に、
aliasの設定等により別の動作をしてしまう可能性があります。
bashは、$-にiが含まれていても対話的利用と分かります。
- 30 :名無しさん@お腹いっぱい。:02/03/03 15:21.net
- >>29
> bashは、$-にiが含まれていても対話的利用と分かります。
$-かぁ。知らなかった。
- 31 :名無しさん@お腹いっぱい。:02/03/03 16:08.net
- >>29
> こうしないと別の人間が/のscriptを使った時に、
#! /bin/bashのscriptを使った時に、
の編集ミスね。
- 32 :名無しさん@Emacs:02/03/08 17:16.net
- 誰か >>10 の
> と真似してみたところディレクトリは補完されないようです
を解決する関数を書いた人はいませんか? いたらウプして下さい。
bash-completion-20020306 を試してみたけどなさそうです。
- 33 :32:02/03/11 17:51.net
- 誰も反応してくれないので自分で書いたよ。
もっとシンプルに書けんもんかのう…せめて関数にパターンが渡せれば。
いちいち関数定義なんかしてられんよ。
_gs()
{
local cur
cur=${COMP_WORDS[COMP_CWORD]}
COMPREPLY=( $( compgen -d -- $cur ) \
$( compgen -f -X '!*.@(?(e)ps|?(E)PS)' -- $cur ) )
return 0
}
complete -F _gs -o filenames gs ghostview
- 34 :名無しさん@お腹いっぱい。:02/03/11 21:32.net
- halt
- 35 :名無しさん@お腹いっぱい。:02/03/19 20:23.net
- reboot
- 36 :名無しさん@お腹いっぱい。:02/03/22 10:04.net
- login:
- 37 :名無しさん@お腹いっぱい。:02/03/25 13:19.net
- login: root
Password:
- 38 :名無しさん@お腹いっぱい。:02/05/13 04:47.net
- /sbin/shutdown -r now
- 39 :名無しさん@お腹いっぱい。:02/05/13 09:14.net
- login:
- 40 :名無しさん@お腹いっぱい。:02/05/13 23:12.net
- >>32
おれももディレクトリを補完できないで悩んでいたんだ。ありがとう。
33を試させてもらいます。
- 41 :40:02/06/03 20:31.net
- ずいぶん返事が遅れてすまぬ。
33でうまくいってます。
しかし33のいうとおり一つ一つ関数定義するのメンドイね。
何かいい方法ないかな?
- 42 :名無しさん@お腹いっぱい。:02/06/07 09:38.net
- bashがよくわ<tab>
- 43 :名無しさん@お腹いっぱい。:02/06/30 14:34.net
- >>42
% bashがよくわ<tab>
からない かる かりたい らう
% bashがよくわ_
- 44 :名無しさん@お腹いっぱい。:02/06/30 14:51.net
- 英語がよくわ<tab>
- 45 :名無しさん@お腹いっぱい。:02/06/30 17:30.net
- % 英語がよくわ<tab>
たしを苦しめる
% 英語がよくわ_
- 46 :名無しさん@お腹いっぱい。:02/06/30 22:27.net
- $ tcshやzshはどうして<Ctrl-D>
で保管をリスティングするのだろう?
$ tcshやzshはどうして
$ promptを%<tab>
って書いている奴は本当にbash使ってるのかと(略
$ promptを%
- 47 :名無しさん@お腹いっぱい。:02/06/30 22:31.net
- 俺zshだけど%使ってる。
- 48 :名無しさん@お腹いっぱい。:02/07/15 17:17.net
- bashでtcshみたいに
$ s
って入力してから履歴見ると
履歴の中で「s」で始まるのだけ表示してくれるようにって出来る?
- 49 :名無しさん@お腹いっぱい:02/07/15 23:08.net
- >>46
コマカイコトイウナヨーオマエ
- 50 :名無しさん@お腹いっぱい。:02/07/16 01:49.net
- >>46
% 俺は途中乗|<tab>
換でbash使い始めたけど$は落ち着かないから%にしてる
% 俺は途中乗|
% |
% う|<tab>
うるせーばか
% う|
- 51 :名無しさん@お腹いっぱい。:02/07/23 14:29.net
- 「bashがマルチバイト文字に正式対応」
http://slashdot.jp/article.pl?sid=02/07/22/1936207
これって日本語のファイル名とかも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
こっちで。
シェル、オークの質問コーナー
http://pc.2ch.net/test/read.cgi/unix/1000303370/
- 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
87 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★