bash2で補完機能が強化されているようですが
皆さんいかがお過ごしでしょうか?
探検
bashで補完スレ
1complete
NGNGNGNG
スクリプトとかで /bin/bash が使われた時に
complete 無いぞ メッセージが出るんで
[ "$BASH_VERSINFO" = "2" ] で回避してみた。
complete 無いぞ メッセージが出るんで
[ "$BASH_VERSINFO" = "2" ] で回避してみた。
27名無しさん@お腹いっぱい。
NGNG 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とかで探さないとね。
ここで少しだけ紹介されていた。ここにあるリンク先
http://www.caliban.org/bash/index.shtml#completion
にあるbash-completion-20020225.tar.gzのなかにたくさん
補完候補があったよ。但し、2.05以降でしか使えないみたい
だから2.04とかのひとはがんばってgoogleとかで探さないとね。
28名無しさん@お腹いっぱい。
NGNG >>27
ありがとうage
ありがとうage
29名無しさん@お腹いっぱい。
NGNG >>26
対話的利用時の設定は、
PS1が設定されている場合だけ行うのが、Bourne系shellの流儀です。
if [ ${PS1:-not_interactive} = not_interactive ]; the
対話的利用時の設定(alias,completeなど)
fi
こうしないと別の人間が/のscriptを使った時に、
aliasの設定等により別の動作をしてしまう可能性があります。
bashは、$-にiが含まれていても対話的利用と分かります。
対話的利用時の設定は、
PS1が設定されている場合だけ行うのが、Bourne系shellの流儀です。
if [ ${PS1:-not_interactive} = not_interactive ]; the
対話的利用時の設定(alias,completeなど)
fi
こうしないと別の人間が/のscriptを使った時に、
aliasの設定等により別の動作をしてしまう可能性があります。
bashは、$-にiが含まれていても対話的利用と分かります。
NGNG
NGNG
NGNG
誰か >>10 の
> と真似してみたところディレクトリは補完されないようです
を解決する関数を書いた人はいませんか? いたらウプして下さい。
bash-completion-20020306 を試してみたけどなさそうです。
> と真似してみたところディレクトリは補完されないようです
を解決する関数を書いた人はいませんか? いたらウプして下さい。
bash-completion-20020306 を試してみたけどなさそうです。
3332
NGNG 誰も反応してくれないので自分で書いたよ。
もっとシンプルに書けんもんかのう…せめて関数にパターンが渡せれば。
いちいち関数定義なんかしてられんよ。
_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
もっとシンプルに書けんもんかのう…せめて関数にパターンが渡せれば。
いちいち関数定義なんかしてられんよ。
_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
NGNG
halt
35名無しさん@お腹いっぱい。
NGNG reboot
NGNG
login:
NGNG
login: root
Password:
Password:
38名無しさん@お腹いっぱい。
NGNG /sbin/shutdown -r now
NGNG
login:
40名無しさん@お腹いっぱい。
NGNG4140
NGNG ずいぶん返事が遅れてすまぬ。
33でうまくいってます。
しかし33のいうとおり一つ一つ関数定義するのメンドイね。
何かいい方法ないかな?
33でうまくいってます。
しかし33のいうとおり一つ一つ関数定義するのメンドイね。
何かいい方法ないかな?
NGNG
bashがよくわ<tab>
43名無しさん@お腹いっぱい。
NGNGNGNG
英語がよくわ<tab>
NGNG
% 英語がよくわ<tab>
たしを苦しめる
% 英語がよくわ_
たしを苦しめる
% 英語がよくわ_
46名無しさん@お腹いっぱい。
NGNG $ tcshやzshはどうして<Ctrl-D>
で保管をリスティングするのだろう?
$ tcshやzshはどうして
$ promptを%<tab>
って書いている奴は本当にbash使ってるのかと(略
$ promptを%
で保管をリスティングするのだろう?
$ tcshやzshはどうして
$ promptを%<tab>
って書いている奴は本当にbash使ってるのかと(略
$ promptを%
NGNG
俺zshだけど%使ってる。
48名無しさん@お腹いっぱい。
NGNG bashでtcshみたいに
$ s
って入力してから履歴見ると
履歴の中で「s」で始まるのだけ表示してくれるようにって出来る?
$ s
って入力してから履歴見ると
履歴の中で「s」で始まるのだけ表示してくれるようにって出来る?
NGNG
>>46
コマカイコトイウナヨーオマエ
コマカイコトイウナヨーオマエ
NGNG
NGNG
「bashがマルチバイト文字に正式対応」
http://slashdot.jp/article.pl?sid=02/07/22/1936207
これって日本語のファイル名とかもlsで表示できるってこと?
http://slashdot.jp/article.pl?sid=02/07/22/1936207
これって日本語のファイル名とかもlsで表示できるってこと?
NGNG
こういう時はageたほうがいいような。
よくわからんのでさっそく2.05bをいれてみたんだが、行の折り返しで化ける問題
もマルチバイト文字を2文字として認識してる問題も、まるっきり変わってない
ような気が。
buildの仕方に問題あったのかなあ。
あ、でも補完機能すごいね。
補完リストが1画面分より長いと、途中で止めてくれるわ。これは便利かも。
よくわからんのでさっそく2.05bをいれてみたんだが、行の折り返しで化ける問題
もマルチバイト文字を2文字として認識してる問題も、まるっきり変わってない
ような気が。
buildの仕方に問題あったのかなあ。
あ、でも補完機能すごいね。
補完リストが1画面分より長いと、途中で止めてくれるわ。これは便利かも。
NGNG
いっしょに話題になったreadlineをインスコした。
readlineを使ったプログラム、うちの場合はPostgreSQLの
フロントエンドpsqlなのだが、ロケールの設定を日本語に
しておくと、漢字部分でのカーソル移動がちゃんと2文字分
になってて、削除も漢字1文字ごとやってくれる。
多分新Bashもこんな感じなのかな。psqlではおかげで
日本語レコードの操作が楽になったので新Bashでは
ターミナルでのマルチバイト処理がしやすくなってる
と推測。あくまで推測 (w
readlineを使ったプログラム、うちの場合はPostgreSQLの
フロントエンドpsqlなのだが、ロケールの設定を日本語に
しておくと、漢字部分でのカーソル移動がちゃんと2文字分
になってて、削除も漢字1文字ごとやってくれる。
多分新Bashもこんな感じなのかな。psqlではおかげで
日本語レコードの操作が楽になったので新Bashでは
ターミナルでのマルチバイト処理がしやすくなってる
と推測。あくまで推測 (w
5453
NGNG まてよ、psqlは前からマルチバイト扱えたっけ?
うーん、今では確認しようがない。スマソ。
うーん、今では確認しようがない。スマソ。
NGNG
NGNG
>>55
今のpsqlにはパッチ当ててない。それで日本語が
まともになったということは。やはりreadlineですかね。
なんかglibcといい、bashといい、マルチバイト対応が
すごいですね。ロケールの切り替えだけで多言語対応できる
Unixマンセー。
今のpsqlにはパッチ当ててない。それで日本語が
まともになったということは。やはりreadlineですかね。
なんかglibcといい、bashといい、マルチバイト対応が
すごいですね。ロケールの切り替えだけで多言語対応できる
Unixマンセー。
NGNG
>>52
コンパイルオプション増えた?>自分でやりって言わないで・・
コンパイルオプション増えた?>自分でやりって言わないで・・
NGNG
>>52
libcがヘボいと(たぶん)configure時に「マルチバイト駄目じゃん」と
判断されて従来通りコンパイルされるよ。
だからCitrus無しのNetBSDとかCygwinなんかだと悲しい…
libcがヘボいと(たぶん)configure時に「マルチバイト駄目じゃん」と
判断されて従来通りコンパイルされるよ。
だからCitrus無しのNetBSDとかCygwinなんかだと悲しい…
59名無しさん@お腹いっぱい。
NGNG バスケットシューズあげ
NGNG
バトミントンシューズsage
NGNG
>48
.inputrc に
"\C-n":history-search-forward
"\C-p":history-search-backward
とか書くとか。
.inputrc に
"\C-n":history-search-forward
"\C-p":history-search-backward
とか書くとか。
62名無しさん@お腹いっぱい。
NGNG bashのパターン照合について
複数のパターンで文字列を抽出
する方法ありましたらご指南お願いします。
(もっとも一旦変数に格納し、分ければ
いいのですが、可能ならばその方法を知りたいです。)
例えば、
$data="/export/user1/test-20020909.log"
で20020909の文字を抽出する場合、一度に
${${data##/*-}%.*}
の様にしたいのですが、
bad substitution
とエラーが出てしまいます。
複数のパターンで文字列を抽出
する方法ありましたらご指南お願いします。
(もっとも一旦変数に格納し、分ければ
いいのですが、可能ならばその方法を知りたいです。)
例えば、
$data="/export/user1/test-20020909.log"
で20020909の文字を抽出する場合、一度に
${${data##/*-}%.*}
の様にしたいのですが、
bad substitution
とエラーが出てしまいます。
NGNG
NGNG
65名無しさん@お腹いっぱい。
NGNG 補完じゃないんですけど教えてください。
emacsと同様に ALT+Backspaceで一語消したいのですが、
どうやったら良いのでしょうか?
emacsと同様に ALT+Backspaceで一語消したいのですが、
どうやったら良いのでしょうか?
NGNG
>65
あり、 ALT+BS ってデフォルトで消えなかったっけ?
ALT+h なら .inputrc に下を書けばいいんだけど。。。
"\M-h":backward-kill-word
あり、 ALT+BS ってデフォルトで消えなかったっけ?
ALT+h なら .inputrc に下を書けばいいんだけど。。。
"\M-h":backward-kill-word
NGNG
>67
version の違いですかね?
挙動の違いといえば、チルダの展開も変わってたりしてハマりますなぁ。。。
version の違いですかね?
挙動の違いといえば、チルダの展開も変わってたりしてハマりますなぁ。。。
6967
NGNG それが、どうもバージョンじゃないみたいなんで悩んでます。(--versionしてみた)
しかも、消せるほうのbashのバイナリを消せないホストにコピーすると、ちゃーんと
消せるようになるんで、設定ファイルとかのせいでも無いみたい...
コンパイル時のオプションかと思うんですけど、もうコンパイルしたときの
作業したソースとか全部消しちゃったんで、ちゃんと動かせるオプション試行錯誤して見つけないと
確かめられなさそう...(コンパイル時のオプション情報なんてバイナリに残らないですよね...)
しかも、消せるほうのbashのバイナリを消せないホストにコピーすると、ちゃーんと
消せるようになるんで、設定ファイルとかのせいでも無いみたい...
コンパイル時のオプションかと思うんですけど、もうコンパイルしたときの
作業したソースとか全部消しちゃったんで、ちゃんと動かせるオプション試行錯誤して見つけないと
確かめられなさそう...(コンパイル時のオプション情報なんてバイナリに残らないですよね...)
NGNG
bashで
"\ep": history-search-backward
"\en": history-search-forward
をC-pとかに割り当てたい
"\ep": history-search-backward
"\en": history-search-forward
をC-pとかに割り当てたい
NGNG
cat .zsh-history |xargs ssh remote cat >> .zsh-history
NGNG
aae
73山崎渉
NGNG (^^)
74山崎渉
NGNG (^^)
75名無しさん@お腹いっぱい。
NGNG $ このス^I
このスレって、もう死に体だね!
$ このスレって、もう死に体だね!_
このスレって、もう死に体だね!
$ このスレって、もう死に体だね!_
NGNG
77山崎渉
NGNG (^^)
78あぼーん
NGNGあぼーん
79名無しさん@Meadow
NGNG パラメータに入れた文字列を、パス展開させたいんだけど、
どうしたらようござんしょう?
例えば、
files="hoge*" && パス展開 && [ ${#files[*]} -ne 0 ]
とか、したいわけよ。
どうしたらようござんしょう?
例えば、
files="hoge*" && パス展開 && [ ${#files[*]} -ne 0 ]
とか、したいわけよ。
8079
NGNG とりあえず、パス名展開はでけたが、配列になってない…(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
むきーっ
> 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
むきーっ
8179
NGNG もれはアホだー!!
> files=(hoge*) && echo ${#files[*]}
3
> files=(hoge*) && echo ${#files[*]}
3
82あぼーん
NGNGあぼーん
83あぼーん
NGNGあぼーん
NGNG
どうせならmigemo呼び出して日本語ファイル名補完とかして欲すぃ。
誰か実装してたりしませんか。
誰か実装してたりしませんか。
85あぼーん
NGNGあぼーん
NGNG
>>56
PS1= の内容については、マルチバイト文字が認識されてないっぽい。
PS1= の内容については、マルチバイト文字が認識されてないっぽい。
87名無しさん@お腹いっぱい。
NGNG menu-completeは引数を受け取れるとmanに書いてあるけど、
こういう引数付きコマンドを.inputrcで何らのキーに割り当てるにはどうするの?
色々やってみたんだが…。
こういう引数付きコマンドを.inputrcで何らのキーに割り当てるにはどうするの?
色々やってみたんだが…。
88名無しさん@お腹いっぱい。
NGNG kshとbashどちらを先に覚えた方がいいですか?
89あぼーん
NGNGあぼーん
NGNG
cygwinのbashには/etc/bash_completionが入ってないなー。
NGNG
Mainte
92名無しさん@お腹いっぱい。
NGNG bashにはtcshのコンプリート機能はないにょ?
NGNG
bash には bash のコンプリート機能があるにょ。
94名無しさん@お腹いっぱい。
NGNG >>93 あったにょ?知らなかったにょ
95ぼるじょあ ◆yBEncckFOU
NGNG ∧_∧ ∧_∧
ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。
=〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
= ◎――――――◎ 山崎渉&ぼるじょあ
ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。
=〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
= ◎――――――◎ 山崎渉&ぼるじょあ
96コンプマン
NGNG 今日はすごい裏技を紹介します。
題して、 「 1から255までループ 」
まず、 1から255までの連続したファイル名を用意します。
中身は空でかまいません。
そのファイルをどこかのディレクトリに格納します。
そして、そのディレクトリに移動したら
for i in *; do echo $i; done
これでばっちり1〜255までループできますね!
【応用編】
1万回ループしたいときは、ファイルを
1〜10000まで用意するといいですよ
題して、 「 1から255までループ 」
まず、 1から255までの連続したファイル名を用意します。
中身は空でかまいません。
そのファイルをどこかのディレクトリに格納します。
そして、そのディレクトリに移動したら
for i in *; do echo $i; done
これでばっちり1〜255までループできますね!
【応用編】
1万回ループしたいときは、ファイルを
1〜10000まで用意するといいですよ
97名無しさん@お腹いっぱい。
NGNG >>96
$ for i in *; do echo $i; done
1
10
100
101
102
103
104
105
106
107
108
109
11
110
111
...
先生!順番が…
$ for i in *; do echo $i; done
1
10
100
101
102
103
104
105
106
107
108
109
11
110
111
...
先生!順番が…
98コンプマン
NGNGNGNG
裏技やるのにファイル作るの面倒な人用↓
a=0;while [ $a -le "255" ];do touch $a;let a="${a}+1";done
こいつで裏技バッチリ。
a=0;while [ $a -le "255" ];do touch $a;let a="${a}+1";done
こいつで裏技バッチリ。
100コンプマン
NGNGNGNG
桁数そろえるには、こんな感じかな。
for i in *;do mv $i `echo $i |sed "s/^\([0-9]\)$/00\1/;s/^\([0-9][0-9]\)$/0\1/"`;done
for i in *;do mv $i `echo $i |sed "s/^\([0-9]\)$/00\1/;s/^\([0-9][0-9]\)$/0\1/"`;done
NGNG
GNU coreutils の seq でいいよ...
105コンプマン
NGNG >>104
for i in `seq -w 255`; do touch $i; done
と、こうくるわけですか。さすが グニュー使いは裏技使い!
もちろん動作も最も速くて完璧超人ですか・・・
でももしこれが 255000 だったりしたらたいへんです
なかなか始まりません。 これが今日の裏技。
for i in `seq -w 255`; do touch $i; done
と、こうくるわけですか。さすが グニュー使いは裏技使い!
もちろん動作も最も速くて完璧超人ですか・・・
でももしこれが 255000 だったりしたらたいへんです
なかなか始まりません。 これが今日の裏技。
NGNG
seq -w 255000 | while read i;do echo $i;done
だと、ちっとまし?
だと、ちっとまし?
NGNG
109コンプマン
NGNGNGNG
>>108
何でもかんでも built-in にするのキモい。
何でもかんでも built-in にするのキモい。
NGNG
>>110
思想的にちょっぴり同意。
思想的にちょっぴり同意。
NGNG
busybox立場無いなぁ とか思ったりしたけど バッシュレ?
NGNG
built-inだと誇らしげに言ってるあたりがイタイね
114名無しさん@お腹いっぱい。
NGNG void main (){}
をa.outとコンパイルして
a.out && echo "sage"
とするとsageと表示されるのですがそんなものなのですか?
返り値を返してはいないのですが。。。
不定の結果なのでしょうか?
をa.outとコンパイルして
a.out && echo "sage"
とするとsageと表示されるのですがそんなものなのですか?
返り値を返してはいないのですが。。。
不定の結果なのでしょうか?
115名無しさん@お腹いっぱい。
NGNGNGNG
117名無しさん@お腹いっぱい。
NGNGNGNG
zsh はいつか perl も built-in にしそうだな。
NGNG
ゆくゆくは Emacs を
NGNG
NGNG
ああ、>>117 の 3 つがまとまった coreutils は GNU の産物だからね。
Linux 使いは coreutils パッケージとしてまとめてインストールしておいたほうが
本気で細々したプログラム群を個別にインストールしなくていいので楽。
coreutils が要らないって人は別のパッケージングや管理方法を使ってるんでしょう。たぶん。
Linux 使いは coreutils パッケージとしてまとめてインストールしておいたほうが
本気で細々したプログラム群を個別にインストールしなくていいので楽。
coreutils が要らないって人は別のパッケージングや管理方法を使ってるんでしょう。たぶん。
NGNG
>>121
> Linux 使いは coreutils パッケージとしてまとめてインストールしておいたほうが
> 本気で細々したプログラム群を個別にインストールしなくていいので楽。
板違い。
> coreutils が要らないって人は別のパッケージングや管理方法を使ってるんでしょう。たぶん。
OS 附属のものを使ってます。
> Linux 使いは coreutils パッケージとしてまとめてインストールしておいたほうが
> 本気で細々したプログラム群を個別にインストールしなくていいので楽。
板違い。
> coreutils が要らないって人は別のパッケージングや管理方法を使ってるんでしょう。たぶん。
OS 附属のものを使ってます。
NGNG
>>112
あれは限定された環境で使うためのものじゃん。
あれは限定された環境で使うためのものじゃん。
NGNG
補完の話じゃなくて申し訳ないが質問。
十年以上 tcsh使ってて、
たまーに Linuxとか cygwin入ってる Windowsとかで bashを使うことが
あって、そのたびに面倒だなーと思ってるんだけど
bash で tcsh の implicitcd に相当することをするにはどうするの?
(ディレクトリ名タイプだけで cdする機能)
十年以上 tcsh使ってて、
たまーに Linuxとか cygwin入ってる Windowsとかで bashを使うことが
あって、そのたびに面倒だなーと思ってるんだけど
bash で tcsh の implicitcd に相当することをするにはどうするの?
(ディレクトリ名タイプだけで cdする機能)
NGNG
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias .....='cd ../../../..'
...
alias ...='cd ../..'
alias ....='cd ../../..'
alias .....='cd ../../../..'
...
NGNG
bashが当たり前に動いてるUNIXってあるんですか?
レスを投稿する
ニュース
- 【工作員】「X」のアカウント所在地公開機能が暴いた世論操作の実態 MAGA支持著名アカウントの多くが米国外から運営 日本にも波及 [ごまカンパチ★]
- たぬかな、結婚していた SNSで報告 生配信では入籍時期も説明 祝福殺到「おめでとう!」「幸あれ」 [muffin★]
- 【高市関税キター!!】個人輸入・少額輸入品への税優遇見直しへ…中国の通販サイトなどからの大量輸入を懸念 [1ゲットロボ★]
- 自民 国会議員の歳費 月額5万円引き上げ 今国会での成立目指す [どどん★]
- 「クラウンに乗りたかった」東京・足立の車暴走 男性、容疑を否認★2 [七波羅探題★]
- 「車を処分してください」生活保護の窓口 取材で見えた利用者の実情 [少考さん★]
- 自民党閣僚関係者「党内外問わず高市総理に批判的なことを言える空気ではない」 [834922174]
- 【高市悲報】月刊WiLL1月特別号の表紙🤮🤮🤮 [731544683]
- キミらごはん1回で何合炊くの?一人暮らし有識者頼むわ
- 【動画】慶應准教授の有野氏、高市答弁の問題点を理路整然と指摘しまいネトウヨ発狂wwwwwwwwwwww [271912485]
- おっさんをハチから守るゲームの広告wwwwwww
- 対人将棋アプリで確実に勝てる方法思いついた
