zshなら勝手になる
>>214 cd "My<tab>
じゃあダメかね?
>>214 cd My¥ Documents となると思ふけど,それぢゃ具合悪くって?
レスどうもー。
>>215 できればbashでやりたいな、と。
>>216 その"を打つのが面倒なので補完したいのです・・・。
>>217 具合悪いです・・・。
cygwinからwinアプリを起動する時の引数として
それだとうまくいかないんですよねぇ。
フォルダ名変えちまえ
function qwinpath { cygpath -mal "$@" | while read; do f=${REPLY//\//\\}; echo \"$f\"; done }
function amp { winamp $(qwinpath "$@" ) & }
cygwinスレでwinampにスペースを含むパスを送りたいから助けてくれと書き込んだ時に教えてもらった。
>cygwinからwinアプリを起動する時の引数
を用意してくれる。
>>220 ありがとうございます。
しかし、思ったような動作はしませんでした。
うまい方法はないようですね。
bashを直接いじることにします。
222 :
名無しさん@お腹いっぱい。:05/03/12 22:46:10
A.txt というファイルに、
AAA='/home/user/sample.conf'
と書かれている行があって、これの引数部分を変数に代入するのに
PARA=`sed -ne "s/^AAA.*'\(.*\)'/\1/p" A.txt`
とやると一応、値の後ろに一文字空白がくっついてしまいます。
これを取るにはどうすれば良いのでしょうか。
>>222 PARA=`sed -ne "s/^AAA.*'\(.*\)' */\1/p" A.txt`
>>223 bash か sed か、どちらのミスなのか迷ってたのですが、
sedの方でしたか。
上手く行きました!ありがとうございます。
225 :
名無しさん@お腹いっぱい。:05/03/17 14:44:29
sedでカンマの前に値が入ってなかったらnullという文字列を入れる処理を作っているのですが
どうもうまくいきません。
実際に打ち込んでるコマンドは
sed 's/,[:space:]*,/,null,/g' < a > b
aのファイルには
a,b,,d,e,f,,
,,,,,,,,,,
となっています。
すみませんが誰かご教授お願いします。
期待している出力例がわかりまへん。
227 :
225:05/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出力するようになるようにしたいです。
申し訳ありません。
>>225 あまりきれいじゃないが:
sed -e 's/.*/,&,/' -e ':1' -e 's/,[[:space:]]*,/,null,/' -e 't 1' -e 's/,\(.*\),/\1/'
>>228様
まだ、駆け出しですが是非参考にさせてもらいます。
本当にありがとうございます。
sage忘れすいません。
$ cd // && pwd
裏面に行けるズラ
$ cd / && pwd
/
$ cd // && pwd
//
$ cd /// && pwd
/
裏面キター
ls //bin
[root@hoge /]$ find ./ -name //
[root@hoge /]$
[root@hoge /]$ mkdir /
mkdir: ディレクトリ `//' を作成できません: ファイルが存在します
[root@hoge /]$ touch //
touch: `//' のタイムスタンプを設定中: 許可がありません
[root@hoge /]$ cd //
[root@hoge //]$
('A')....w
rm ーfr //
はこわいからできない。
ごめんうそついた。
ほんとは一般ユーザでやった
ノシ
ダブった / はカウントされないだけ
>>231 みたいに一貫性がないのは、実害はないけどバグでしょ。
仕様という名のバグだろ。
Q.□ボタンが凹むのですが
A.仕様です
アホか
> 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'.
み、見たことねぇ……(;´Д`)
bashdbって使ったことありますか?
簡単なステップ実行できますね。
>>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 ソースの./bash-3.0/examples/bashdb/bashdbに入ってるよ。
引数にシェルスクリプトを指定すればすぐ使えます。
-aalias
-bbuiltin
-ccommand
-ddirectory
-eexport
-ffile
-ggroup
-jjob
-kkeyword
-sservice
-uuser
-vvariable
247 :
名無しさん@お腹いっぱい。:2005/05/08(日) 23:07:20
bashのコマンドラインからコマンド打つときの
引数の長さや数の上限は、環境変数で変更できるの?
248 :
名無しさん@お腹いっぱい。:2005/05/15(日) 20:29:49
bashの保管ってコンテキストで変えられるの?
たとえば
man TAB
だとmanのあるやつがリストアップとか
250 :
名無しさん@お腹いっぱい。:2005/05/15(日) 21:37:40
プログラマぶるか
251 :
名無しさん@お腹いっぱい。:2005/05/24(火) 18:02:54
bashでファイルをインクルードする方法ってないでしょうか?
Aというファイルに関数abcというのがあり、
BというスクリプトからAの中にある関数abcを呼び出したいんですが
検索しても見つからなかったのでご教授お願いします。
初心者です。251がどこを検索したのか知りたいんですが教えて下さい。
256 :
名無しさん@お腹いっぱい。:2005/05/26(木) 14:04:15
タブ補完でディレクトリを手繰るとき、ディレクトリがシンボリックリンクだと
2回タブキーを押さないといけないのがうざったいですが、なんとかなりませんか?
bash2.05です。昔は、普通のディレクトリでもディレクトリへのシンボリックリンクでも
タブ1回で済んでいたような気がします。
257 :
名無しさん@お腹いっぱい。:2005/05/29(日) 13:14:08
>>256 echo set mark-symlinked-directories on >> ~/.inputrc
258 :
名無しさん@お腹いっぱい。: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)
となっていますが、これは変えたくないのですが・・・
ご教授お願いします。
>>258 alias javac=/usr/java/j2sdk1.4.2_05/bin/javac
bash なら which より type 使え。
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:
[email protected] STATUS: 完全にインストールされました。
FILES: 261 installed pathnames
5 shared pathnames
22 directories
21 executables
16794 blocks used (approx)
$
--------------------------
263 :
: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です
>>263 お前それ板違いだろ。コママンドライン補完でもないし…
/FYI/ pgrepが入っているはずだよ。
~/.inputrc に
"\M-p": history-search-backward
"\M-n": history-search-forward
と書いてあるんだが、3.1 にしたら効かなくなったみたい。
"\ep": history-search-backward
"\en": history-search-forward
なら
$ man find -print0
man にイタズラできるズラ
zsh が流行りだけど漏れは bash も軽くて好きだ。補完は…
shopt -s hostcomplete
complete -d cd pushd rmdir
complete -c type which man
これくらいしかやってない('A')
しかしデフォルトでドットファイルが補完対象になるのはちょっとウザいな。
これを止めさせる方法誰か知らないかい?
ぐわ、自己解決だスマソ
~/.inputrc に
set match-hidden-files off
を加えればいいようだ。
Tab補完候補をカラー表示したくてzsh使ってるが
ホントにbashの方が軽いんだろうか?
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
}
ずんwikiにいろいろ書いといた。
変だったら直しておいて。
bashって、zshみたいに、
**/Imakefileって、`find . -name Imakefile`に相当すること出来ないの?
274 :
名無しさん@お腹いっぱい。:2006/04/21(金) 13:46:32
>>263 ps -C プログラム名 -o pid=
275 :
名無しさん@お腹いっぱい。: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 するとエラーはでないのですが、
どう直せばいいんでしょうか?
インクリメンタルサーチを使いたいのですが
Ctrl+Rで前に戻れるけど、これだけでは意味がわからないです。
Ctrl+Sを押すと停止してしまってCtrl+Qを押すまで復帰しません。
使い物にならないのですがどうにかならないでしょうか
>>276 Ctrl-S/Ctrl-Qは、シリアル通信用のXON/XOFFとして使われてるので、
Ctrl-Sで停止したりするのは端末の仕様。
これをやめさせるには、
$ stty -ixon
を実行しておく。
278 :
名無しさん@お腹いっぱい。:2008/03/25(火) 14:31:52
常識的に考えてzshでいいだろ。
と常識の無いアホが申しております
280 :
名無しさん@お腹いっぱい。:2008/09/28(日) 17:15:57
/usr/local/bin/hoge-abc-xyz
なんつう実行ファイルがあったとして、
これ、bc って打ってタブ打ったら
候補としてあがってくるようにとかできないもんかな。
コマンドの途中しか覚えてないことがあるんだけど、
そういう時ってどうやってる?
俺は結局 locate で調べてます。
>>281 欲嫁
> コマンドの途中しか覚えてない
って言ってるんだからその答えは外してる。
>>280 答えは、
echo /usr/local/bin/*bc*
/usr/local/bin/ にあるってことすら忘れてるんじゃないの
tcshのpostcmdというのと同じことをbashでやりたいんですが,
何か良いやり方はありませんか?
286 :
284:2008/10/25(土) 11:54:03
いや,それはtcshでいうところの precmdであって,
postcmdはコマンドを実行する直前に動作するものなので
それだと目的が実現できないんですよ
287 :
名無しさん@お腹いっぱい。:2009/03/05(木) 16:29:17
bashでTabをうつとファイル名が補完されますが
補完対象から「.」で始まるファイルを外すことはできますか。
いつも「.svn」が補完対象に入ってうざいんです。
>>287 echo 'set match-hidden-files Off' >>~/.inputrc
289 :
名無しさん@お腹いっぱい。:2009/03/08(日) 20:52:51
Objective-BashとかBash++とか、そういうの誰か作ってください。
291 :
名無しさん@お腹いっぱい。: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
とやってもだめでした。こういう場合はどう書けばよいでしょうか?
>>291 AAA_{1999..2002}.txt
293 :
名無しさん@お腹いっぱい。: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
ちゃんと表示された。
>>293 それは、unzipの仕様で、複数のファイルを列挙では指定できないため。
for文使うしかないな。
for f in AAA_{1999..2002}.zip; do unzip $f; done
295 :
名無しさん@お腹いっぱい。:2009/04/18(土) 21:36:34
>>294 すげぇ、、、、
あんたゴルゴみたいだな。
このスレの存在意義を否定するわけじゃないが
あんまりbashの補完にねちねち拘るくらいなら、zsh使ったほうがいいよ
>>297 的確に的を射た解答をしてくれるって意味じゃないの
299 :
名無しさん@お腹いっぱい。:2009/12/10(木) 09:53:18
/tmp/hoge
が昨日作られたものかどうかチェックしたいんだけど
どう書けばいい?
302 :
名無しさん@お腹いっぱい。:2011/06/05(日) 11:48:59.62
bash-4.2で、変数DIRに適当なディレクトリが入ってる時に
$DIR[Tab] で補完しようとすると、
¥$DIR/hoge みたいに補完されてしまい、
変数$DIRがわざわざクォートされてしまって展開されません。
bash-4.1ではちゃんと$DIRが中身に展開されて補完されました。
展開させるには?
303 :
名無しさん@お腹いっぱい。:2011/06/15(水) 17:28:17.59
Alt-Ctrl-e
すみませんが詳しい方のみ回答をお願いします
>>302 CTRL+ALT+e で展開出来るんじゃない?
すみませんが、詳しい方のみ回答をお願いします
それ元ネタ何だっけ。
元はしらんけど、おととしからずっと流行してる
流行っていうか、パンデミック?
>>302 $ bind -p | grep shell-expand-line
>>312 質問と回答が噛み合ってないなぁ
/dir/hoge/boke っていうディレクトリがあったとして、
DIR=/dir/hoge と代入されてる状態で、
bash-4.1 では、$DIR/b[TAB] で補完できたのに
bash-4.2 では $DIRがクォートされる(なのにbokeの部分は補完される)
という中途半端な状態になるのを直したいってことだろ。
$ bind -p | egrep complete-filename
bashline.cを読めば分かるが、completeのその振る舞いは外から制御不可能。
いづこも同じ 知ったかの夕暮れw
bash-4.2では出来ないんですね。
わかりました。bash-4.1に戻します。
318 :
名無しさん@お腹いっぱい。:2011/06/20(月) 22:51:44.77
bashスクリプト内で source .bashrc が反映されません
どのようにすればスクリプト内で反映されるのでしょうか?
>>318 スクリプト内で sourceしても、スクリプトを抜けたら元に戻るよw
>>319 戻らないようにするにはどうすればいいのん?
あぁ、釣りか。 つられちゃったw てへっ?☆
子プロセスに環境変数を設定させる方法って無いかな。
Cのポインタ渡しみたいに。
324 :
名無しさん@お腹いっぱい。:2011/07/04(月) 10:55:06.11
325 :
名無しさん@お腹いっぱい。:2011/07/06(水) 08:39:56.62
補完のエスケープシーケンスを Ctrl-I にして、
TABキーはそのままTABが入力できるようにしたいんですけど、
設定方法よろしこ。
タブ文字を入力したい時はC-v C-iかC-v TAB
>>326 それは知ってます(笑)
それでは嫌なので、TABだけでTAB入力、
Ctrl-I のエスケープシーケンスで補完にしたいんですが。
わかる人だけお願いします
わからない人は黙っていなさい
>>327 bash側の設定では無理だと思うよ。
X側の設定でTABが送るキーコードを変えるとか
そういう無茶をしないと無理だと思う。
>>329 逆じゃね?bash側でなんとかしないと解決しないと思うんだが
どうやるの?
あるコマンドを、成功するまで指定回数分リトライする
というスクリプトを、スタイリッシュに書いてください。
ここは補完スレだが。
宿題は自分でやれ
あるコマンドを、成功するまで指定回数分リトライする
という補完設定を、bashでスタイリッシュに書いてください。
わかる人だけお願いします
わからない人は黙っていなさい
分かるから書くが、他所に行け。
>>337 スタイリッシュさが伝わらない。 あなたは失格ですね。
とっとと答えろ
アホ・ボケ
坊や提出日まであとどれくらいだい?
341 :
名無しさん@お腹いっぱい。:2011/12/09(金) 16:46:02.45
カーソルの↑とかでヒストリーを出して編集すると、
ヒストリーが編集されてしまいますが
これをやめたいときはどうしたらよいでしょうか。
fcじゃね
>>304 >>306 >>314 bash-4.1では CTRL+ALT+E 押さなくても最初から展開されるんだよ。
bash-4.2でも同じように最初から展開される方法を質問してるんだろ。
質問です
bashの補完機能使うとだーって候補が出るじゃないですか
その候補から検索でわーって絞り込みたいんです
出来ますの?勿論ググりましたが、当方馬鹿なのでわかりません
サルでも分かるような回答を強く期待します
僕はこういう小バカにしたような書き方しか出来ませんが、凄く切実に知りたいです
さぁどうぞ↓
↑
阻止
できますわよ
347 :
名無しさん@お腹いっぱい。:2013/03/11(月) 16:59:48.62
bashで、今から実行するコマンドの実行時間を測定するときは
組込みコマンドの time を使用するけど、
今すでに実行中のコマンドの実行時間を測定する方法ってありますか?
あとからtimeコマンドを打つわけにもいかないし
348 :
名無しさん@お腹いっぱい。: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
>>348 なるほどありがとう
それを1秒おきにPIDがなくなるまで監視すればいいんだな
ちょっとやってみる
Q. bash は UNIX の勉強に使えますか?
A. bash は UNIX に慣れた人間が「bash の 機能!」を気取るには向いていますが、
UNIX の勉強には向いていません。
351 :
名無しさん@お腹いっぱい。:2013/04/10(水) 14:35:20.24
bashの組込みコマンド一覧をbashで表示するにはどうしたらいいの?
help
ですから、ヘルプお願いしますよぉ
だからhelpリターンと打て
helpで表示するとちょん切れてオプションが読めないな
だれだこれ設計した阿呆は
そういうのは個別に
help コマンド名
で確認。
あれは途中でちょん切れてる、ってより
可能な範囲で表示している、って感じ。
二列に表組みしてるからだろ
クズ
ここで煽っても直らないよ。
bash のパイプ数って変更できないんですかね?
ulimit -p で設定しても、”変更させねーよ!”といわれてしまうので・・。
>>360 ulimit -p は パイプ数じゃなくてパイプサイズ(512btye単位)だろ。
OS(カーネル)のパイプサイズが4096byteだから、
これはシェルはもちろん、プロセス側からは変更できない。
dashとbash比較した時
クライアング運用ならdashのが劣っている点はなんですか?
365 :
名無しさん@お腹いっぱい。:2013/08/07(水) NY:AN:NY.AN
デバッグなんてするの?
するよ。
クライアング運用ってなに?
クライ は"泣く"
アング は"怒る"
ログインした時の場所を任意に決めたいんですが、
そんなことって出来るんですか?
出来るなら方法を教えて欲しいです。
お願いします。
cd hogehoge
それだとcdコマンドを発行すると元に戻ってしまいます。
その時の場所も任意に変更したいのですが、それは出来ますか?
/etc/passwd を弄ればいい。
375 :
名無しさん@お腹いっぱい。:2013/10/09(水) 19:57:49.86
標準エラー出力と標準出力、それぞれを
別のパイプに通すことは可能?
そういうコピペ改変はいいです
377 :
375:2013/10/10(木) 14:43:33.11
できました。
できてません。引続き回答をお願いします。
380 :
375:2013/10/10(木) 15:10:17.95
( ./unko | ./chinko ) 2>&1 | ./manko
ってやっただけ。
( )の存在を忘れてた。
bashをshという名前でコピーして勉強しましょう。多少はshに近づく
シンボリックリンクでもモード切り替わるんじゃなかったっけ?
シンボリックリンクでもOk
ハードリンクでもモード切り替わるんじゃなかったっけ?
ハードリンクでもOk
スタティックリンクでもモード切り替わるんじゃなかったっけ?
スタティックリンクかどうかは無関k
もういいよ。
ダイナミックリンクでもモード切り替わるんじゃなかったっけ?
ubuntuではdashにしんぼりっくりんくはってあるね
ダイナミックリンクかどうかは無関k
スケートリンクでもモード切り替わるんじゃなかったっけ?
すべりました。
スケートリンクにいるのはJK
case文の途中で抜けたいんだけど
breakつかうと上のfor文抜けちゃうので
どうしたらいいか よいアイデアを 出すのだ
マルチ乙
関数つかえばいいんじゃね?
398 :
名無しさん@お腹いっぱい。:2014/02/03(月) 21:31:41.18
アンパサンドってエスケープ必要だっけ?
399 :
名無しさん@お腹いっぱい。:2014/05/09(金) 14:24:31.59
川崎
川崎
川崎
400 :
名無しさん@お腹いっぱい。:2014/09/25(木) 20:24:39.50
お宅のbashハム問題ですか?
401 :
名無しさん@お腹いっぱい。:2014/10/18(土) 16:49:36.92
2つのディレクトリに同じファイルをコピーしたいのですが、一回で処理したいです
調べたところcp, xargs,lsを使うと出来そうなのですが、どうしたらよいでしょうか
ls /dir/foo /dir/hoge | xargs cp file ではだめでした
そういうコピペ改変はいいです
403 :
名無しさん@お腹いっぱい。:2014/10/19(日) 21:34:24.11
言い忘れましたが、コピーはアトミカルにお願いします。
freeBSDはなんでbashを標準シェルにしちゃったの?
ls *.txt
みたいな正規表現もどきって
正式名称はなんですか?
ワイルドカード
glob
「パス名展開」
* や ? はワイルドカードと言うが、
[a-z] みたいなのはワイルドカードとは言わない。
そういうのも含めてglob
globはどちらかと言うとcsh用語だな。
bashのmanだと、"pathname expansion" として載ってるから、
"パス名展開"が正式かな。
bashでもGLOBIGNORE変数とかあるじゃん
ありがとうございました
グロブやパス名展開でいろいろググることができました
検索したいときに検索すべきキーワードわからないと
ほんとに検索できなくてつらかったので助かりました