bashで補完スレ
0001completeNGNG
bash2で補完機能が強化されているようですが
皆さんいかがお過ごしでしょうか?
0004名無しさん@お腹いっぱい。NGNG
complete -d cd
complete -c man
complete -u {su,finger}
0006名無しさん@お腹いっぱい。NGNG
gccの引数として*.cを補完させたいときどうすればいいの?
0007名無しさん@お腹いっぱい。NGNG
>>6
漏れも教えてほすぃ
0008名無しさん@お腹いっぱい。NGNG
mv !$ ~/trash
みたいなAlias書きたいのですが、、、
どうかいたらいいですかね?
0009名無しさん┃】【┃DolbyNGNG
>>6 bash-2.0.5aの
examples/complete/complete* を眺めた感じでは

complete -f -X '!*.c' gcc

だと思う。誰か試してくれ
0010名無しさん@お腹いっぱい。NGNG
>>8
!$が何か知りませんが
function rm () { command mv $@ ~/trash/ ; }
とかどうでしょう?
rmとmvのオプションの違いとかを吸収していませんが

>>9
カレントディレクトリのファイルはうまく補完できるみたいです
lprとかで印刷するときなどにディレクトリ名も補完しながら
探せると便利だと思うんですが
complete -f -X'!*.ps' lpr
と真似してみたところディレクトリは補完されないようです
0011名無しさん@お腹いっぱい。NGNG
>>10
rm -r怒られるのちと痛いんでsedかawkでちょっとだけ
引数修正したいね。
0012名無しさん@お腹いっぱい。NGNG
bashよりzshつかうべき?
0015名無しさん@お腹いっぱい。NGNG
>>14
そりゃ反則ですよ
0016名無しさん@お腹いっぱい。NGNG
bash2って何処で手にはいるの?
0017名無しさん@お腹いっぱい。NGNG
>>16
FreeBSDやLinuxのほとんどのディストリビューションに
はいってますよ。
0018名無しさん@お腹いっぱい。NGNG
bash2補完機能もっとがんばれage
0019名無しさん@お腹いっぱい。NGNG
ええと、自慢の.bashrcをアプし合うスレはここですか?
0020名無しさん@お腹いっぱい。NGNG
>>19
いいえ。ゴミなら/dev/nullにどうぞ。
0022名無しさん@お腹いっぱい。NGNG
complete: usage: complete [-abcdefjkvu] [-pr]
[-A action] [-G globpat] [-W wordlist] [-P prefix]
[-S suffix] [-X filterpat] [-F function] [-C command] [name ...]

使い方が判らんのれす
0023名無しさん@お腹いっぱい。NGNG
>>19

.bashrc

とりあえずネラーなら

MAILPATH="/var/mail/mona?メール キタ━━━━━━(゜∀゜)━━━━━━ !!!!! "
MAILCHECK=5

だろう。メールボックスのパスは自分で変えろよ。
0024名無しさん@お腹いっぱい。NGNG
>>22
禿道
0026名無しさん@お腹いっぱい。NGNG
スクリプトとかで /bin/bash が使われた時に
complete 無いぞ メッセージが出るんで
[ "$BASH_VERSINFO" = "2" ] で回避してみた。
0028名無しさん@お腹いっぱい。NGNG
>>27
ありがとうage
0029名無しさん@お腹いっぱい。NGNG
>>26
対話的利用時の設定は、
PS1が設定されている場合だけ行うのが、Bourne系shellの流儀です。

if [ ${PS1:-not_interactive} = not_interactive ]; the
対話的利用時の設定(alias,completeなど)
fi

こうしないと別の人間が/のscriptを使った時に、
aliasの設定等により別の動作をしてしまう可能性があります。

bashは、$-にiが含まれていても対話的利用と分かります。
0032名無しさん@EmacsNGNG
誰か >>10
> と真似してみたところディレクトリは補完されないようです
を解決する関数を書いた人はいませんか? いたらウプして下さい。
bash-completion-20020306 を試してみたけどなさそうです。
003332NGNG
誰も反応してくれないので自分で書いたよ。
もっとシンプルに書けんもんかのう…せめて関数にパターンが渡せれば。
いちいち関数定義なんかしてられんよ。

_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

0035名無しさん@お腹いっぱい。NGNG
reboot
0038名無しさん@お腹いっぱい。NGNG
/sbin/shutdown -r now
0040名無しさん@お腹いっぱい。NGNG
>>32
おれももディレクトリを補完できないで悩んでいたんだ。ありがとう。
33を試させてもらいます。
004140NGNG
ずいぶん返事が遅れてすまぬ。
33でうまくいってます。
しかし33のいうとおり一つ一つ関数定義するのメンドイね。
何かいい方法ないかな?
0043名無しさん@お腹いっぱい。NGNG
>>42
% bashがよくわ<tab>
からない かる かりたい らう
% bashがよくわ_
0046名無しさん@お腹いっぱい。NGNG
$ tcshやzshはどうして<Ctrl-D>
で保管をリスティングするのだろう?
$ tcshやzshはどうして

$ promptを%<tab>
って書いている奴は本当にbash使ってるのかと(略
$ promptを%
0048名無しさん@お腹いっぱい。NGNG
bashでtcshみたいに
$ s
って入力してから履歴見ると
履歴の中で「s」で始まるのだけ表示してくれるようにって出来る?
0052名無しさん@お腹いっぱい。NGNG
こういう時はageたほうがいいような。

よくわからんのでさっそく2.05bをいれてみたんだが、行の折り返しで化ける問題
もマルチバイト文字を2文字として認識してる問題も、まるっきり変わってない
ような気が。
buildの仕方に問題あったのかなあ。

あ、でも補完機能すごいね。
補完リストが1画面分より長いと、途中で止めてくれるわ。これは便利かも。

0053名無しさん@お腹いっぱい。NGNG
いっしょに話題になったreadlineをインスコした。
readlineを使ったプログラム、うちの場合はPostgreSQLの
フロントエンドpsqlなのだが、ロケールの設定を日本語に
しておくと、漢字部分でのカーソル移動がちゃんと2文字分
になってて、削除も漢字1文字ごとやってくれる。
多分新Bashもこんな感じなのかな。psqlではおかげで
日本語レコードの操作が楽になったので新Bashでは
ターミナルでのマルチバイト処理がしやすくなってる
と推測。あくまで推測 (w
005453NGNG
まてよ、psqlは前からマルチバイト扱えたっけ?
うーん、今では確認しようがない。スマソ。
0056名無しさん@お腹いっぱい。NGNG
>>55
今のpsqlにはパッチ当ててない。それで日本語が
まともになったということは。やはりreadlineですかね。
なんかglibcといい、bashといい、マルチバイト対応が
すごいですね。ロケールの切り替えだけで多言語対応できる
Unixマンセー。
0058名無しさん@お腹いっぱい。NGNG
>>52
libcがヘボいと(たぶん)configure時に「マルチバイト駄目じゃん」と
判断されて従来通りコンパイルされるよ。
だからCitrus無しのNetBSDとかCygwinなんかだと悲しい…
0059名無しさん@お腹いっぱい。NGNG
バスケットシューズあげ
0062名無しさん@お腹いっぱい。NGNG
bashのパターン照合について
複数のパターンで文字列を抽出
する方法ありましたらご指南お願いします。
(もっとも一旦変数に格納し、分ければ
いいのですが、可能ならばその方法を知りたいです。)

例えば、
$data="/export/user1/test-20020909.log"
で20020909の文字を抽出する場合、一度に
${${data##/*-}%.*}
の様にしたいのですが、
bad substitution
とエラーが出てしまいます。
0065名無しさん@お腹いっぱい。NGNG
補完じゃないんですけど教えてください。

emacsと同様に ALT+Backspaceで一語消したいのですが、
どうやったら良いのでしょうか?
0066名無しさん@XEmacsNGNG
>65
あり、 ALT+BS ってデフォルトで消えなかったっけ?

ALT+h なら .inputrc に下を書けばいいんだけど。。。

"\M-h":backward-kill-word
006765NGNG
>>66
あっ、すみません!
家の中に、デフォルトで消えるbashと消えないbashがあるのに気付きました。

#うーん、なんでだろう??
0068名無しさん@XEmacsNGNG
>67
version の違いですかね?

挙動の違いといえば、チルダの展開も変わってたりしてハマりますなぁ。。。
006967NGNG
それが、どうもバージョンじゃないみたいなんで悩んでます。(--versionしてみた)
しかも、消せるほうのbashのバイナリを消せないホストにコピーすると、ちゃーんと
消せるようになるんで、設定ファイルとかのせいでも無いみたい...
コンパイル時のオプションかと思うんですけど、もうコンパイルしたときの
作業したソースとか全部消しちゃったんで、ちゃんと動かせるオプション試行錯誤して見つけないと
確かめられなさそう...(コンパイル時のオプション情報なんてバイナリに残らないですよね...)
0075名無しさん@お腹いっぱい。NGNG
$ このス^I
このスレって、もう死に体だね!
$ このスレって、もう死に体だね!_
0079名無しさん@MeadowNGNG
パラメータに入れた文字列を、パス展開させたいんだけど、
どうしたらようござんしょう?

例えば、

files="hoge*" && パス展開 && [ ${#files[*]} -ne 0 ]

とか、したいわけよ。
008079NGNG
とりあえず、パス名展開はでけたが、配列になってない…(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

むきーっ

008179NGNG
もれはアホだー!!

> files=(hoge*) && echo ${#files[*]}
3
0087名無しさん@お腹いっぱい。NGNG
menu-completeは引数を受け取れるとmanに書いてあるけど、
こういう引数付きコマンドを.inputrcで何らのキーに割り当てるにはどうするの?
色々やってみたんだが…。
0088名無しさん@お腹いっぱい。NGNG
kshとbashどちらを先に覚えた方がいいですか?
0092名無しさん@お腹いっぱい。NGNG
bashにはtcshのコンプリート機能はないにょ?
0094名無しさん@お腹いっぱい。NGNG
>>93 あったにょ?知らなかったにょ
0095ぼるじょあ ◆yBEncckFOU NGNG
     ∧_∧  ∧_∧
ピュ.ー (  ・3・) (  ^^ ) <これからも僕たちを応援して下さいね(^^)。
  =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
  = ◎――――――◎                      山崎渉&ぼるじょあ
0096コンプマンNGNG
今日はすごい裏技を紹介します。
題して、 「 1から255までループ 」

まず、 1から255までの連続したファイル名を用意します。
中身は空でかまいません。
そのファイルをどこかのディレクトリに格納します。

そして、そのディレクトリに移動したら
for i in *; do echo $i; done

これでばっちり1〜255までループできますね!

【応用編】
1万回ループしたいときは、ファイルを
1〜10000まで用意するといいですよ
0097名無しさん@お腹いっぱい。NGNG
>>96
$ for i in *; do echo $i; done
1
10
100
101
102
103
104
105
106
107
108
109
11
110
111
...

先生!順番が…
0098コンプマンNGNG
>>97
新たな投稿ありがとう。 ミッションスタート!!

ファイル名を

000
001
002
・・・
254
255

と書き換えましょう
0099名無しさん@お腹いっぱい。NGNG
裏技やるのにファイル作るの面倒な人用↓
a=0;while [ $a -le "255" ];do touch $a;let a="${a}+1";done

こいつで裏技バッチリ。
0100コンプマンNGNG
応援ありがとう!!
だが、それではファイル名が>>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
0105コンプマンNGNG
>>104
for i in `seq -w 255`; do touch $i; done
と、こうくるわけですか。さすが グニュー使いは裏技使い!
もちろん動作も最も速くて完璧超人ですか・・・

でももしこれが 255000 だったりしたらたいへんです
なかなか始まりません。 これが今日の裏技。
0107今婦てぃっくNGNG
>>105
のまえにラインバッファの限界こないか?
xargsとかつかいな
0109コンプマンNGNG
>>107
それは大丈夫だ。
100万個のループでも我慢して待てば動作するぞ!

だが 1000000 は 1e+06 と表現されるから注意が必要だ。
キミも渡来!
0114名無しさん@お腹いっぱい。NGNG
void main (){}

をa.outとコンパイルして

a.out && echo "sage"

とするとsageと表示されるのですがそんなものなのですか?
返り値を返してはいないのですが。。。
不定の結果なのでしょうか?
0115名無しさん@お腹いっぱい。NGNG
>>114
./a.out; echo $?
だとどう?
0116名無しさん@お腹いっぱい。NGNG
>>110
> 何でもかんでも built-in にするのキモい。
>>113
> built-inだと誇らしげに言ってるあたりがイタイね

そうかな。coreutils, bash を両方インストールするのが無駄
0117名無しさん@お腹いっぱい。NGNG
>>116
coreutils = fileutils + textutils + sh-utils
どのみち使う。無駄なわけない
0121名無しさん@お腹いっぱい。NGNG
ああ、>>117 の 3 つがまとまった coreutils は GNU の産物だからね。
Linux 使いは coreutils パッケージとしてまとめてインストールしておいたほうが
本気で細々したプログラム群を個別にインストールしなくていいので楽。
coreutils が要らないって人は別のパッケージングや管理方法を使ってるんでしょう。たぶん。
0122名無しさん@お腹いっぱい。NGNG
>>121
> Linux 使いは coreutils パッケージとしてまとめてインストールしておいたほうが
> 本気で細々したプログラム群を個別にインストールしなくていいので楽。

板違い。

> coreutils が要らないって人は別のパッケージングや管理方法を使ってるんでしょう。たぶん。

OS 附属のものを使ってます。
0124名無しさん@お腹いっぱい。NGNG
補完の話じゃなくて申し訳ないが質問。

十年以上 tcsh使ってて、
たまーに Linuxとか cygwin入ってる Windowsとかで bashを使うことが
あって、そのたびに面倒だなーと思ってるんだけど

bash で tcsh の implicitcd に相当することをするにはどうするの?
(ディレクトリ名タイプだけで cdする機能)
0131仕様書無しさんNGNG
補完の質問ではないのですが、他にbashのスレが無いようなので
ここに書かせていただきます。
ls -l | grep '^d'
のようなパイプラインの実現方法なのですが、
@foo.shのようなファイルに記述してそこにパスを通す
A.bashrcで関数function foo{...}と定義する
上記の@とAのどちらが適切なのでしょうか。
0132名無しさん@お腹いっぱい。NGNG
・シェル関数はカレントシェルのプロセス内で実行される
・シェルスクリプトはサブシェル内で実行される

ls -a | grep なんとか

というコマンド列はどっちでも変わらない。
0134コンプマンNGNG
今日はbashのif文で質問だ!
if文は便利だが、AND条件でちょっと困ったことがある

if [ "$HOGE"="hoge" and "$PIYO"="piyo" ]; then 〜

みたいなことをやりたいときは どうするのが賢いかな?
if文if文、またif文!?
0141名無しさん@お腹いっぱい。NGNG
if文で文字列の辞書比較
0142名無しさん@お腹いっぱい。NGNG
if文で文字列の辞書比較
はどうやら出来そうも無い
0143名無しさん@お腹いっぱい。NGNG
if文で文字列の辞書比較
はどうやら出来そうも無い
別の方法で実現することに
0144名無しさん@お腹いっぱい。NGNG
if文で文字列の辞書比較
はどうやら出来そうも無い
別の方法で実現することに
したいと僕のアナルが報告
0145名無しさん@お腹いっぱい。NGNG
if文で文字列の辞書比較
はどうやら出来そうも無い
別の方法で実現することに
したいと僕のアナルが報告
するためにローションを
0146名無しさん@お腹いっぱい。NGNG
if文で文字列の辞書比較
はどうやら出来そうも無い
別の方法で実現することに
したいと僕のアナルが報告
するためにローションを
ぬ<tab>

ぬか ぬっころす ぬりたくり ぬるぽ

if文で文字列の辞書比較
はどうやら出来そうも無い
別の方法で実現することに
したいと僕のアナルが報告
するためにローションを

0148名無しさん@お腹いっぱい。NGNG
uniqするにはsortしなければならないけど
sortしてuniqしたあと、sort前に戻したい

というか、sortなしでuniqしたい
どうしたらいいかな?

自分で書いたらかっこよくなかった
スタイリッシュな方法キボン
0149名無しさん@お腹いっぱい。NGNG
cshがあれば他はいらなくね?
ぬるぽ
0152名無しさん@お腹いっぱい。NGNG
>>150
番号つけてソートしたら番号順にソートされて
つまりそれってソートされないんじゃ?
0154名無しさん@お腹いっぱい。NGNG
丁寧にソートするですね

そーっと


ウェーハッハッハ
0155名無しさん@お腹いっぱい。NGNG
tcsh
0156名無しさん@お腹いっぱい。NGNG
ソートしてみた。
視覚化になんと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
0158名無しさん@お腹いっぱい。NGNG
バージョン 2.05bで、
コマンド ./bin/mycommand を補間しようとして、
./b のあとに補完すると、
./bin を補完してくれるのですが、
「n」のあとに余分なスペースを一つ入れられてしまいます。
期待しているのは
./bin/ と(スペースなしで)補完してくれることなんですが、
どう設定すればいいかご存知の方、
教えて下さい。
0161名無しさん@お腹いっぱい。NGNG
>>160
設定の問題ではなさそうで、
2.05aでは問題なしだった。
0162名無しさん@お腹いっぱい。NGNG
うちじゃ 2.05b でも、たとえば ls ./b <tab> で ls ./bin/ になるよ。
コマンドに対して complete でなんか設定しているんじゃないの?
0163名無しさん@お腹いっぱい。NGNG
>>162
コマンドの引数じゃなくてコマンドそのものの補完の時。
というか公式パッチ確かめたら、出てました。
bash205b-003でした。
0164名無しさん@お腹いっぱい。NGNG
bash 3は{1..10}を展開するようになったんだね。
**/Makefileも展開して欲しいなあ。
0168166NGNG
>>167

curlだとそんな芸当ができたのかorz
0171名無しさん@お腹いっぱい。NGNG
コマンドの実行結果って何で見れるんだっけ?
exit(x); とかのxの値のことね

$!だと思ったけどなんか違った
0181名無しさん@お腹いっぱい。NGNG

for i in *
do
done

ではエラーになってしまいます。
bashで空文はどうすればいいのでしょうか?
0183名無しさん@お腹いっぱい。NGNG
bash-2.05b$ たまには
たまには補完スレらしく補完してみたり。 たまには糞スレを荒らしてみたり。
bash-2.05b$ たまには
0184名無しさん@お腹いっぱい。NGNG
$( < /etc/passwd ) と $( cat /etc/passwd )
は同じ事ですか?
アドバイスお願いします。
0186名無しさん@お腹いっぱい。NGNG
>>185
レスありがとうございます。
具体的には$( < /etc/passwd )の方が安全と言うことなのでしょうか?
いまいちつかめないのですが・・・
0188名無しさん@お腹いっぱい。NGNG
ところで小数の計算ってどうやるの?
for(i=0.0;i<10.0;i=i+0.1){}みたいにしたいのに、やり方がさっぱりわからん。
どなたかやり方教えてください。
0190名無しさん@お腹いっぱい。NGNG
Cシェルでファイルを読み込む方法を教えて下さい。
0195188NGNG
レスしてくれた人、ありがとうございます。
参考にさせていただきます。
0196名無しさん@お腹いっぱい。NGNG
>>192
>>192
神様へ。
レスありがとうございます。

何がやりたいかというとですねぇ・・・

Cシェルで、ある実行ファイルを実行したいときに、それに渡すためのパラメタを、
ファイルから読み込みたいということなんです。
イメージとして、

// イメージここから
#!/bin/csh

read init.ini // iniファイルを読み込む

Hoge $aaa // 実行ファイルHogeに対して、読み込んだinit.iniに記述している項目を$aaaに設定し、
// パラメタとして指定するということです。

// イメージここまで

0198名無しさん@お腹いっぱい。05/01/18 18:03:46
aliasで外部アプリ起動時に引数を渡すには
スクリプトを書く以外に方法はありませんか?

alias hage='/d/program\ files/hage/hage.exe $* &'

みたいなaliasを登録したいんですけど。
0199名無しさん@お腹いっぱい。05/01/21 19:38:31
i-searchで履歴を検索する時に大文字小文字を区別できませんか?
TABでmenu-completeに設定してるんですけど
*abc*<TAB>
等と入力するのが面倒なので
TABで先頭一致補完、Ctrl+TABでインクリメンタル補完にしたいんですけど
ワイルドカードを使わずにインクリメンタル補完する方法ってありますか?
0200名無しさん@お腹いっぱい。05/01/21 19:40:27
うぁ読み難いですね。
質問したいことは二つあります。

1.i-searchで履歴を検索する時に大文字小文字を区別できませんか?

2.TABでmenu-completeに設定してるんですけど
*abc*<TAB>
等と入力するのが面倒なので
TABで先頭一致補完、Ctrl+TABでインクリメンタル補完にしたいんですけど
ワイルドカードを使わずにインクリメンタル補完する方法ってありますか?

よろしくお願いします。
0201名無しさん@お腹いっぱい。05/01/21 19:41:43
度々すいません。訂正です。
うぁ読み難いですね。
質問したいことは二つあります。

1.i-searchで履歴を検索する時に大文字小文字を区別できませんか?

1.i-searchで履歴を検索する時に大文字小文字を区別しないようにできませんか?
0202名無しさん@お腹いっぱい。05/01/23 01:21:31
タブを押したとき、直前の単語に * が含まれていればマッチするもの全てに展開、
含まれていなければ候補を1つずつ回って行くという挙動にできますか?
0205名無しさん@お腹いっぱい。05/01/28 23:33:32
### で始まる文字列が来るまで
テキストを表示する
というスクリプトを書きたいんだけど
最も短く記述するには
なにがいいかな
0209名無しさん@お腹いっぱい。05/02/16 23:13:21
ヒアドキュメント内で痴漢したいんですけど、どうしたらいいですか?
こんな感じで使いたいですが

name="usagi"
cat > tmp.txt <<'SAILORMOON'
tsukino $name
SAILORMOON
0210名無しさん@お腹いっぱい。05/02/17 09:51:42
>>209
パラメータ展開したいんなら、
終了文字列をクォートしちゃいかん。

name="usagi"
cat > tmp.txt << SAILORMOON
tsukino $name
SAILORMOON

あと、bash補完の話題じゃないので、シェルスクリプトスレに書いてくれ。
0211名無しさん@お腹いっぱい。05/02/17 13:16:48
>>210
それだと
tsukino usagi
にならず
tsukino $name
のままなんですよ

あと、続きはシェルスクリプトスレを探してみます
0212名無しさん@お腹いっぱい。05/02/17 13:37:17
>>211
んなこたぁない。

cat > tmp.txt << 'SAILORMOON'

を、↓

cat > tmp.txt << SAILORMOON

にしてもう一回やってみろ。
(どこが違ってるかわかってる?)

ちゃんと、
tsukino usagi
と表示されるよ。
0214名無しさん@お腹いっぱい。05/02/18 00:30:45
Windowsのコマンドプロンプトのように
ファイル名やパス名を補完した結果の文字列を
ダブルクォートで囲むようにしたいのですが、
どうしたらよいでしょうか?

cd My<tab>
    ↓
cd "My Documents"


completeコマンドでprefix,suffixにダブルクォートを指定しても
うまくいきません・・・

0218名無しさん@お腹いっぱい。05/02/21 22:59:57
レスどうもー。

>>215
できればbashでやりたいな、と。

>>216
その"を打つのが面倒なので補完したいのです・・・。

>>217
具合悪いです・・・。
cygwinからwinアプリを起動する時の引数として
それだとうまくいかないんですよねぇ。
0220名無しさん@お腹いっぱい。05/02/22 02:47:09
function qwinpath { cygpath -mal "$@" | while read; do f=${REPLY//\//\\}; echo \"$f\"; done }
function amp { winamp $(qwinpath "$@" ) & }

cygwinスレでwinampにスペースを含むパスを送りたいから助けてくれと書き込んだ時に教えてもらった。

>cygwinからwinアプリを起動する時の引数
を用意してくれる。

0221名無しさん@お腹いっぱい。05/02/25 20:42:15
>>220
ありがとうございます。
しかし、思ったような動作はしませんでした。
うまい方法はないようですね。
bashを直接いじることにします。
0222名無しさん@お腹いっぱい。05/03/12 22:46:10
A.txt というファイルに、

AAA='/home/user/sample.conf'

と書かれている行があって、これの引数部分を変数に代入するのに

PARA=`sed -ne "s/^AAA.*'\(.*\)'/\1/p" A.txt`

とやると一応、値の後ろに一文字空白がくっついてしまいます。
これを取るにはどうすれば良いのでしょうか。
0224名無しさん@お腹いっぱい。05/03/13 00:13:47
>>223
bash か sed か、どちらのミスなのか迷ってたのですが、
sedの方でしたか。
上手く行きました!ありがとうございます。
0225名無しさん@お腹いっぱい。05/03/17 14:44:29
sedでカンマの前に値が入ってなかったらnullという文字列を入れる処理を作っているのですが
どうもうまくいきません。
実際に打ち込んでるコマンドは
sed 's/,[:space:]*,/,null,/g' < a > b

aのファイルには
a,b,,d,e,f,,
,,,,,,,,,,
となっています。

すみませんが誰かご教授お願いします。
022722505/03/17 16:04:49
すいません
期待してる出力例は
225にあるaのファイルを
a,b,null,d,e,f,null,null
null,null,null,null,null,null,null,null,null,null,null
としてb出力するようになるようにしたいです。

申し訳ありません。
022922505/03/17 16:45:45
>>228
まだ、駆け出しですが是非参考にさせてもらいます。
本当にありがとうございます。

sage忘れすいません。
0233(´д`)ノ ◆zAyjllBm/g 2005/03/21(月) 18:35:58
[root@hoge /]$ find ./ -name //
[root@hoge /]$

[root@hoge /]$ mkdir /
mkdir: ディレクトリ `//' を作成できません: ファイルが存在します

[root@hoge /]$ touch //
touch: `//' のタイムスタンプを設定中: 許可がありません

[root@hoge /]$ cd //
[root@hoge //]$


('A')....w
rm ーfr //
はこわいからできない。
0240名無しさん@お腹いっぱい。2005/03/21(月) 23:39:04
> 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'.
み、見たことねぇ……(;´Д`)
0243名無しさん@お腹いっぱい。2005/04/04(月) 14:22:16
>>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
0247名無しさん@お腹いっぱい。2005/05/08(日) 23:07:20
bashのコマンドラインからコマンド打つときの
引数の長さや数の上限は、環境変数で変更できるの?
0248名無しさん@お腹いっぱい。2005/05/15(日) 20:29:49
bashの保管ってコンテキストで変えられるの?
たとえば
man TAB
だとmanのあるやつがリストアップとか
0250名無しさん@お腹いっぱい。2005/05/15(日) 21:37:40
プログラマぶるか
0251名無しさん@お腹いっぱい。2005/05/24(火) 18:02:54
bashでファイルをインクルードする方法ってないでしょうか?
Aというファイルに関数abcというのがあり、
BというスクリプトからAの中にある関数abcを呼び出したいんですが
検索しても見つからなかったのでご教授お願いします。
0256名無しさん@お腹いっぱい。2005/05/26(木) 14:04:15
タブ補完でディレクトリを手繰るとき、ディレクトリがシンボリックリンクだと
2回タブキーを押さないといけないのがうざったいですが、なんとかなりませんか?

bash2.05です。昔は、普通のディレクトリでもディレクトリへのシンボリックリンクでも
タブ1回で済んでいたような気がします。
0257名無しさん@お腹いっぱい。2005/05/29(日) 13:14:08
>>256
echo set mark-symlinked-directories on >> ~/.inputrc
0258名無しさん@お腹いっぱい。2005/07/07(木) 10:34:34
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)
となっていますが、これは変えたくないのですが・・・

ご教授お願いします。
0260七資産@尾名課一敗2005/08/06(土) 13:07:42
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)
$
--------------------------
0263 2005/10/20(木) 20:46:12
起動したら最後PID見てkillするしか止める方法が無いプログラムの
start、stopをbashで書こうと思っているのですが(XXXXctlみたいな奴です)
PIDを取得するのに良い方法はあるんでしょうか?

今は$(ps -ef | grep プログラム名 | cut -c 9-14 | sed -e "s/\s//g")とかやって
配列に突っ込んでるんですが、、、
そもそもpsの出力って固定長でしたっけ?

ちなみにOSはRHES3です
0266名無しさん@お腹いっぱい。2005/12/25(日) 11:37:35
~/.inputrc に

"\M-p": history-search-backward
"\M-n": history-search-forward

と書いてあるんだが、3.1 にしたら効かなくなったみたい。

"\ep": history-search-backward
"\en": history-search-forward

なら
0268名無しさん@お腹いっぱい。2006/02/13(月) 06:13:36
zsh が流行りだけど漏れは bash も軽くて好きだ。補完は…

shopt -s hostcomplete
complete -d cd pushd rmdir
complete -c type which man

これくらいしかやってない('A')

しかしデフォルトでドットファイルが補完対象になるのはちょっとウザいな。
これを止めさせる方法誰か知らないかい?
0271名無しさん@お腹いっぱい。2006/03/25(土) 01:58:40
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
}

0274名無しさん@お腹いっぱい。2006/04/21(金) 13:46:32
>>263
ps -C プログラム名 -o pid=
0275名無しさん@お腹いっぱい。2006/08/03(木) 23:08:47
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 するとエラーはでないのですが、
どう直せばいいんでしょうか?
0276名無しさん@お腹いっぱい。2008/03/09(日) 16:23:13
インクリメンタルサーチを使いたいのですが
Ctrl+Rで前に戻れるけど、これだけでは意味がわからないです。
Ctrl+Sを押すと停止してしまってCtrl+Qを押すまで復帰しません。
使い物にならないのですがどうにかならないでしょうか
0277名無しさん@お腹いっぱい。2008/03/09(日) 16:28:30
>>276
Ctrl-S/Ctrl-Qは、シリアル通信用のXON/XOFFとして使われてるので、
Ctrl-Sで停止したりするのは端末の仕様。
これをやめさせるには、

$ stty -ixon

を実行しておく。
0278名無しさん@お腹いっぱい。2008/03/25(火) 14:31:52
常識的に考えてzshでいいだろ。
0280名無しさん@お腹いっぱい。2008/09/28(日) 17:15:57
/usr/local/bin/hoge-abc-xyz

なんつう実行ファイルがあったとして、
これ、bc って打ってタブ打ったら
候補としてあがってくるようにとかできないもんかな。
コマンドの途中しか覚えてないことがあるんだけど、
そういう時ってどうやってる?

俺は結局 locate で調べてます。
02862842008/10/25(土) 11:54:03
いや,それはtcshでいうところの precmdであって,
postcmdはコマンドを実行する直前に動作するものなので
それだと目的が実現できないんですよ
0287名無しさん@お腹いっぱい。2009/03/05(木) 16:29:17
bashでTabをうつとファイル名が補完されますが
補完対象から「.」で始まるファイルを外すことはできますか。
いつも「.svn」が補完対象に入ってうざいんです。
0289名無しさん@お腹いっぱい。2009/03/08(日) 20:52:51
Objective-BashとかBash++とか、そういうの誰か作ってください。
0291名無しさん@お腹いっぱい。2009/04/18(土) 21:03:14
AAA_1996.txt
AAA_1997.txt
AAA_1998.txt
AAA_1999.txt
AAA_2000.txt
AAA_2001.txt
AAA_2002.txt
AAA_2003.txt
AAA_2004.txt
というファイルがあるときに、AAA_1999.txtからAAA_2002.txtまでをあるコマンドの引数に
与えたいと思うのですが、
command AAA_{1999|2000|2001|2002}.txt
とやってもだめでした。こういう場合はどう書けばよいでしょうか?
0293名無しさん@お腹いっぱい。2009/04/18(土) 21:18:31
ありがとうございます。
先のコマンドというのはunzipなんですが、lsとかだと教えてもらった書き方でいけたのですが、
unzipだと上手くいきません。ワイルドカード的な書き方に拘らず、全部書いてしまってもいいかとも
思うのですが、、、もし書き方があったら教えてください。

$ unzip AAA_{1999..2002}.zip
Archive: AAA_1999.zip
caution: filename not matched: AAA_2000.zip
caution: filename not matched: AAA_2001.zip
caution: filename not matched: AAA_2002.zip
結局何も解凍されず。

$ ls AAA_{1999..2002}.zip
AAA_1999.zip AAA_2000.zip AAA_2001.zip AAA_2002.zip
ちゃんと表示された。
0294名無しさん@お腹いっぱい。2009/04/18(土) 21:33:13
>>293
それは、unzipの仕様で、複数のファイルを列挙では指定できないため。

for文使うしかないな。

for f in AAA_{1999..2002}.zip; do unzip $f; done
0295名無しさん@お腹いっぱい。2009/04/18(土) 21:36:34
>>294
すげぇ、、、、
あんたゴルゴみたいだな。
0296名無しさん@お腹いっぱい。2009/04/19(日) 21:45:56
このスレの存在意義を否定するわけじゃないが
あんまりbashの補完にねちねち拘るくらいなら、zsh使ったほうがいいよ
0299名無しさん@お腹いっぱい。2009/12/10(木) 09:53:18
/tmp/hoge
が昨日作られたものかどうかチェックしたいんだけど
どう書けばいい?
0302名無しさん@お腹いっぱい。2011/06/05(日) 11:48:59.62
bash-4.2で、変数DIRに適当なディレクトリが入ってる時に
$DIR[Tab] で補完しようとすると、
¥$DIR/hoge みたいに補完されてしまい、
変数$DIRがわざわざクォートされてしまって展開されません。

bash-4.1ではちゃんと$DIRが中身に展開されて補完されました。
展開させるには?
0303名無しさん@お腹いっぱい。2011/06/15(水) 17:28:17.59
>>302 わかる方いませんか?
0313名無しさん@お腹いっぱい。2011/06/16(木) 14:24:46.10
>>312
質問と回答が噛み合ってないなぁ

/dir/hoge/boke っていうディレクトリがあったとして、
DIR=/dir/hoge と代入されてる状態で、
bash-4.1 では、$DIR/b[TAB] で補完できたのに
bash-4.2 では $DIRがクォートされる(なのにbokeの部分は補完される)
という中途半端な状態になるのを直したいってことだろ。
0318名無しさん@お腹いっぱい。2011/06/20(月) 22:51:44.77
bashスクリプト内で source .bashrc が反映されません
どのようにすればスクリプト内で反映されるのでしょうか?
0324名無しさん@お腹いっぱい。2011/07/04(月) 10:55:06.11
投入コマンドのみフォントカラーを設定したいんだけど、できる?


[maro@2ch.net log]$ls
otakara.zip ero.zip
[maro@2ch.net log]$unzip ero.zip

↑の "ls", "unzip ero.zip" に色をつける感じで。
0325名無しさん@お腹いっぱい。2011/07/06(水) 08:39:56.62
補完のエスケープシーケンスを Ctrl-I にして、
TABキーはそのままTABが入力できるようにしたいんですけど、
設定方法よろしこ。
0327名無しさん@お腹いっぱい。2011/07/06(水) 11:06:55.65
>>326
それは知ってます(笑)

それでは嫌なので、TABだけでTAB入力、
Ctrl-I のエスケープシーケンスで補完にしたいんですが。
0329名無しさん@お腹いっぱい。2011/07/06(水) 11:36:02.09
>>327
bash側の設定では無理だと思うよ。
X側の設定でTABが送るキーコードを変えるとか
そういう無茶をしないと無理だと思う。
0332名無しさん@お腹いっぱい。2011/07/11(月) 20:33:14.84
あるコマンドを、成功するまで指定回数分リトライする
というスクリプトを、スタイリッシュに書いてください。
0335名無しさん@お腹いっぱい。2011/07/11(月) 21:27:14.27
あるコマンドを、成功するまで指定回数分リトライする
という補完設定を、bashでスタイリッシュに書いてください。
0341名無しさん@お腹いっぱい。2011/12/09(金) 16:46:02.45
カーソルの↑とかでヒストリーを出して編集すると、
ヒストリーが編集されてしまいますが
これをやめたいときはどうしたらよいでしょうか。
0344名無しさん@お腹いっぱい。2013/02/10(日) 16:06:52.65
質問です
bashの補完機能使うとだーって候補が出るじゃないですか
その候補から検索でわーって絞り込みたいんです
出来ますの?勿論ググりましたが、当方馬鹿なのでわかりません
サルでも分かるような回答を強く期待します
僕はこういう小バカにしたような書き方しか出来ませんが、凄く切実に知りたいです
さぁどうぞ↓
0347名無しさん@お腹いっぱい。2013/03/11(月) 16:59:48.62
bashで、今から実行するコマンドの実行時間を測定するときは
組込みコマンドの time を使用するけど、

今すでに実行中のコマンドの実行時間を測定する方法ってありますか?
あとからtimeコマンドを打つわけにもいかないし
0348名無しさん@お腹いっぱい。2013/03/31(日) 20:32:59.57
スレチだがless

カーネルモードだったら
$ cut -d' ' -f15 </proc/$PID/stat
ユーザーモードだったら
$ cut -d' ' -f14 </proc/$PID/stat
詳細は知らん。

起動した時刻から調べるなら
$ cut -d' ' -f22 </proc/$PID/stat
0350名無しさん@お腹いっぱい。2013/04/02(火) 20:19:44.99
Q. bash は UNIX の勉強に使えますか?
A. bash は UNIX に慣れた人間が「bash の 機能!」を気取るには向いていますが、
  UNIX の勉強には向いていません。
0351名無しさん@お腹いっぱい。2013/04/10(水) 14:35:20.24
bashの組込みコマンド一覧をbashで表示するにはどうしたらいいの?
0360名無しさん@お腹いっぱい。2013/05/03(金) 20:28:30.85
bash のパイプ数って変更できないんですかね?
ulimit -p で設定しても、”変更させねーよ!”といわれてしまうので・・。
0362名無しさん@お腹いっぱい。2013/06/08(土) 20:09:47.71
>>360
ulimit -p は パイプ数じゃなくてパイプサイズ(512btye単位)だろ。
OS(カーネル)のパイプサイズが4096byteだから、
これはシェルはもちろん、プロセス側からは変更できない。
0365名無しさん@お腹いっぱい。2013/08/07(水) NY:AN:NY.AN
>>364
とてもとてもデバッグしづらい
0370名無しさん@お腹いっぱい。2013/08/31(土) NY:AN:NY.AN
ログインした時の場所を任意に決めたいんですが、
そんなことって出来るんですか?
出来るなら方法を教えて欲しいです。
お願いします。
0372名無しさん@お腹いっぱい。2013/08/31(土) NY:AN:NY.AN
それだとcdコマンドを発行すると元に戻ってしまいます。
その時の場所も任意に変更したいのですが、それは出来ますか?
0375名無しさん@お腹いっぱい。2013/10/09(水) 19:57:49.86
標準エラー出力と標準出力、それぞれを
別のパイプに通すことは可能?
03773752013/10/10(木) 14:43:33.11
できました。
03803752013/10/10(木) 15:10:17.95
( ./unko | ./chinko ) 2>&1 | ./manko
ってやっただけ。
( )の存在を忘れてた。
0395名無しさん@お腹いっぱい。2013/10/22(火) 13:09:56.71
case文の途中で抜けたいんだけど
breakつかうと上のfor文抜けちゃうので
どうしたらいいか よいアイデアを 出すのだ
0398名無しさん@お腹いっぱい。2014/02/03(月) 21:31:41.18
アンパサンドってエスケープ必要だっけ?
0399名無しさん@お腹いっぱい。2014/05/09(金) 14:24:31.59
川崎

川崎

川崎
0400名無しさん@お腹いっぱい。2014/09/25(木) 20:24:39.50
お宅のbashハム問題ですか?
0401名無しさん@お腹いっぱい。2014/10/18(土) 16:49:36.92
2つのディレクトリに同じファイルをコピーしたいのですが、一回で処理したいです
調べたところcp, xargs,lsを使うと出来そうなのですが、どうしたらよいでしょうか
ls /dir/foo /dir/hoge | xargs cp file ではだめでした
0403名無しさん@お腹いっぱい。2014/10/19(日) 21:34:24.11
言い忘れましたが、コピーはアトミカルにお願いします。
0412名無しさん@お腹いっぱい。2014/12/10(水) 18:33:48.53
globはどちらかと言うとcsh用語だな。

bashのmanだと、"pathname expansion" として載ってるから、
"パス名展開"が正式かな。
0414名無しさん@お腹いっぱい。2014/12/10(水) 22:50:30.30
ありがとうございました
グロブやパス名展開でいろいろググることができました

検索したいときに検索すべきキーワードわからないと
ほんとに検索できなくてつらかったので助かりました
0415名無しさん@お腹いっぱい。2016/09/26(月) 10:23:40.68
コマンドで -h なんかを使ってusage出しているときは
戻り値は 0 にすべき?
0416名無しさん@お腹いっぱい。2017/02/06(月) 15:05:05.13
ctrl+u でカーソルより前を削除
ctrl+k でカーソルから後ろを削除

カーソル位置関係なく行を丸ごと削除するショートカットはないの?
0420名無しさん@お腹いっぱい。2017/04/05(水) 12:52:50.31
historyが端末を開いているときはどんどん増えていくのですが
再起動すると新しい500個位になってしまいます
HISTSIZE=10000にしているので10000個保存してほしいのですが何がおかしいのでしょう?
~/.bashrcのhistory関連の設定はこんな感じです

export HISTCONTROL=ignoreboth
export HISTIGNORE="fg*:bg*:history*"
shopt -s histappend
export PROMPT_COMMAND="history -a"
export HISTSIZE=10000
export HISTFILESIZE=200000
export HISTTIMEFORMAT='%F %T '
0421名無しさん@お腹いっぱい。2017/12/29(金) 09:09:24.97
誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。

グーグル検索⇒『宮本のゴウリエセレレ』

VGOGKSEEQX
0422名無しさん@お腹いっぱい。2018/05/22(火) 04:53:00.63
知り合いから教えてもらったパソコン一台でお金持ちになれるやり方
時間がある方はみてもいいかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

3VNZ7
レスを投稿する


ニューススポーツなんでも実況