[

このエントリーをはてなブックマークに追加
1名無しさん@お腹いっぱい。
このコマンド凄くね?
英数字でもないのにたった一文字。
しかもシェルスクリプトとかそーいうしょぼいのではなくて、
ちゃんとしたバイナリ。
すごいじゃん。

あまりに凄すぎてうっかり消してしまう人、続出。

そんな凄い [ をみんなで賛えるスレ。
1000
3名無しさん@お腹いっぱい。:04/02/19 15:00
>>1
そうか、ガンガレ!
type [
5名無しさん@お腹いっぱい。:04/02/19 15:13
which [
Solaris には /bin/[ は存在せず、

>しかもシェルスクリプトとかそーいうしょぼいのではなくて、

/bin/test も ksh スクリプトだったりなんかする(w
71:04/02/19 15:20
>>6
[ がないようなくさったシステムには用はない。

つーか、おまえら書きこみが足らんぞ!
もっと尊敬汁 (゚Д゚)
test
9名無しさん@お腹いっぱい。:04/02/19 15:32
これってbash2からbuiltin commandになったんだっけ?
斎藤:似たような話はありますよ、「誰か
が/binにカギカッコとかいう変なのをのを作
ってたんで消しときました」って。
>>9
ちがうよ。
bash1どころか、ふつーのBourneシェルでもbuiltinだよ。
[ が builtinじゃなかったのはecho pwd とかすら
外部コマンドだったふるーい時代だ。

あの頃は
if [ ... ]
と書くより
case ... in
の方が(内部コマンドなので)速い、というテクニックがあった。
>>4-5
Debianなんですが、

$ type [
[ is a shell builtin

$ which [
/usr/bin/[

となりました。この/usr/bin/[はcoreutilsに含まれているもののようです。
ウニ板以外ではスレタイとして成立しえないな
Enter押そうとしたらミスって[を押してしまう.
皆さんはEnterと[押し間違えませんか?
UNIX使いなら普通EnterよりもCtrl-J or Ctrl-Mの方を使うだろ。
それに、普通英語キーを使うから、Enterも近い。
日本語キーはダメね。
>>10
わろた
171:04/02/19 21:35
$ uname -a
SunOS **(host名)** 5.8 Generic_108528-22 sun4u sparc
$ type [
[ is a shell builtin
$ which [
/usr/local/bin/[
$ file /usr/local/bin/[
/usr/local/bin/[: ELF 32-bit MSB executable, SPARC, version 1 (SYSV), dynamically linked (uses shared libs), not stripped

一方

$ uname -a
SunOS **(ホスト名)** 5.6 Generic_105181-35 sun4u sparc SUNW,Ultra-1
$ type [
[ is a shell builtin
$ which [
[: Command not found.
$ cat /usr/bin/test
#!/bin/ksh
#
#ident "@(#)alias.sh 1.1 95/02/06 SMI"
#
# Copyright (c) 1995 by Sun Microsystems, Inc.
#
cmd=`basename $0`
$cmd "$@"

[ がインストールされてないシステムを使ってるやつは管理者を罵倒しる!
18名無しさん@お腹いっぱい。:04/02/19 21:40
おお、スレタイトル見て荒しかと思ったけど
UNIX板ならではですね〜
19Σ ◆projectlUY :04/02/20 01:14
file /bin/[
/bin/[: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), for FreeBSD
5.0.2, dynamically linked (uses shared libs), stripped
%file /bin/[
/bin/[: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), for FreeBSD
4.8, statically linked, stripped
俺は今でも、文字列比較は case しか使わん
よくこんなスレタイでこんだけ話題が続くな。
恐るべしウニ板。
まぁtest とtsetをtypoする俺様は[必須だ。
テストカキコ用スレかと思って「いいセンスしてやがる」と来てみたが…
>>1マジネタだったんか…
対応がとれてないと気持ち悪いから]が欲しくてたまらない。
]をどんなコマンドにするか、考えてみないか?
alias ] [
このコマンド何?
man無いし。--help付けても分からんし。記号だからぐぐれないし。
常識みたいだけどおせーて。
まともなUNIXなら
man '['
どうも。
うちのlinuxはまともなUNIXじゃないということが良く分かりました。
ログインできる SunOS 5.8 には入ってませんでした。
FreeBSDでやっと man 読めました。
ちなみに、linuxではよく見たらシンボリックリンクでした。
なるほど、隔離板があるわけですね。ためになりました。ありがとうございます。
>>27
$ /usr/bin/[ --help
すれ。
ちゃんとヘルプ表示されるぞ。

単に [ だと shell builtin が優先されるので
[: missing `]'
になる。
>>30
zshでは実行すらできませんでした。
/usr/bin/[ --help
zsh: bad pattern: /usr/bin/[
TEST(1) BSD General Commands Manual TEST(1)

NAME
test, [test - condition evaluation utility

SYNOPSIS
test expression [test expression ]

DESCRIPTION
The test utility evaluates the expression and, if it evaluates to true,
returns a zero (true) exit status; otherwise it returns 1 (false). If
there is no expression, test also returns 1 (false).
%where [
/bin/[
%file /bin/[
/bin/[: Mach-O executable ppc

%/bin/[ --help
%
if [ X$hoge = X ]; then ... ってのもバッドノウハウだよな
35名無しさん@お腹いっぱい。:04/02/21 01:58
服または鎧のたぐい
man '\['

で読めた。
>>34
if [ -z "$hoge" ]; thenじゃだめな理由ってなに?
そういえば、/bin/shの[は-eが無いから困る。
39名無しさん@お腹いっぱい。:04/02/22 13:23
>>29 coreutilsに普通に入っていたが...
Linuxザウルスかなんかでbusyboxが代わりに入ってるのか?
4039:04/02/22 13:24
うぉ、ageてしまった。スマン
>>38
最近、bashismてんこもりなshell scriptばかり書いてしまう
ようになって、あちこちで迷惑かけてまつ。
>>39
$ ls -l /usr/bin/[
lrwxrwxrwx 1 root root 4 Dec 6 23:20 /usr/bin/[ -> test*
$ rpm -qf /usr/bin/test
sh-utils-2.0.11-9vl5
$ cat /etc/vine-release
Vine Linux 2.90 (Valandraud)
>>42
Vineは先っちょでもまだcoreutilsが入ってないのか(驚
4443:04/02/22 14:18
知らない人のために補足するけどcoreutilsはそれまでの
fileutils, sh-utils, textutilsを統合したものね。
45名無しさん@お腹いっぱい。:04/02/22 15:00
まあいちおう。
http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&cmd=&man=test&dir=jpman-5.2.0%2Fman§=0

[,,'[',"[",'\[',"\[",で検索するとCGIエラーになるのは内緒。
46名無しさん@お腹いっぱい。:04/02/22 15:06
>>10
ピリスラバックスラカギカッコ
>>41
script に bash 指定すれば?

#!/bin/bash
[
[
$ file /usr/bin/[
/usr/bin/[: symbolic link to test
% file /bin/[
/bin/[: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), for FreeBSD 4.9, statically linked, stripped

% file /bin/[
/bin/[: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), for FreeBSD 5.0.2, dynamically linked (uses shared libs), stripped
% file /bin/[
zsh: bad pattern: /bin/[

% file /bin/\[
/bin/[: cannot open (/bin/[)

% file /usr/bin/\[
/usr/bin/[: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.0, dynamically linked (uses shared libs), stripped
53名無しさん@お腹いっぱい。:04/03/03 17:26
[
このスレクリックしづらい
55名無しさん@お腹いっぱい。:04/03/05 07:42
ワロタ
>>54
ハゲドウw
クリックしたりせずに読めるツール使え
だめだ、俺はもうp2から離れられない
ホシュ
[ このスレ = 糞スレ ]
61名無しさん@お腹いっぱい。:04/10/16 13:09:21

[ ホシュ() ]
[ "X$1" = "X" ]
[ "X$1" = "Xぬるぽ" ] && reboot
>>37
しいて言えば、[で一度評価してるものをifで再度評価してるのが無駄というところか。
% file /bin/\[
/bin/[: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), for FreeBSD 6.0.0, dynamically linked (uses shared libs), stripped

% file /rescue/\[
/rescue/[: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), for FreeBSD 6.0.0, statically linked, stripped
そういえば : ていうコマンドはないのかな?
と思ったが ln true : でいいか。
>>67
sh 系の . は?

6967:04/10/17 01:33:18
>>68
知らん。

つか、それは内部コマンドじゃないと意味無いだろ。
70[:04/11/01 12:52:47
もっと私を褒め讃えなさい
>>70
チ?ハ�、ホ ] 、ホ、ウ、ネ、ノ、ヲサラ、、、゙、ケ、ォ。ゥ
テスト
73名無しさん@お腹いっぱい。:05/02/25 09:55:24
ホシュ
[













]
[(1)
76名無しさん@お腹いっぱい。:2005/03/22(火) 21:46:12
[
77名無しさん@お腹いっぱい。:UNIX時間(+0900)35年,2005/04/03(日) 00:12:02
[
78名無しさん@お腹いっぱい。:UNIX時間(+0900)35年,2005/04/03(日) 01:16:54
昔は`もだった
79名無しさん@お腹いっぱい。:2005/10/16(日) 05:01:01
[[
80名無しさん@お腹いっぱい。:2006/01/18(水) 02:33:20
からあげ うまうま だよもん。
81!EVL&!!!:2006/04/03(月) 09:30:57
[[ てのは bash の組み込みコマンドだべさ
82名無しさん@お腹いっぱい。:2006/04/03(月) 10:19:34
>>81
違う。[[ は { とか if とかと同列のシェルの文法。
もはやコマンドではない。
83名無しさん@お腹いっぱい。:2006/04/05(水) 17:52:50
$ type [[
[[ is a shell keyword
$ type [
[ is a shell builtin
$
84名無しさん@お腹いっぱい。:2006/10/23(月) 16:01:02
たまに /bin/[ がないOSがあるよね。
実質困らんけど、教育上置いておいてほしいな。
85名無しさん@お腹いっぱい。:2006/10/24(火) 04:31:36
cshで困るから置けよぉ
86ウサチャソ:2006/11/13(月) 02:28:28
>>85
それは撲滅対象なので使うのやめれ
87名無しさん@お腹いっぱい。:2006/11/13(月) 16:50:56
kara-age
88名無しさん@お腹いっぱい。:2006/12/25(月) 18:59:30
昔、なんだこれwww
と消したことがあるよ。
89名無しさん@お腹いっぱい。:2007/09/01(土) 12:18:42
5 ヶ月も前のネタだが将来発掘されるために書いておく
「日本[の会」 http://x5b.jp/
90名無しさん@お腹いっぱい。:2008/04/17(木) 00:22:01
このスレタイトルで意味が通るのも凄いところだなw
91ウサチャソ ◆/0IEZmXnQ6 :2008/04/17(木) 20:04:43
>>90
他になんか一文字でスレタイになるかな?
w、e、くらいか…

姉妹スレ
http://pc11.2ch.net/test/read.cgi/unix/1093675428/
92名無しさん@お腹いっぱい。:2008/04/17(木) 20:07:19
あと : もあるぞ。
: は何故外部コマンド版 /bin/: を置かなかったんだろう?
93名無しさん@お腹いっぱい。:2008/04/17(木) 21:37:34
ギコナビのタイトルが
ギコナビ - [[]
94名無しさん@お腹いっぱい。:2008/04/20(日) 04:08:18
>>93
俺がいるw
95名無しさん@お腹いっぱい。:2008/04/23(水) 00:55:20
&
はコマンドじゃないんだっけ?
あと
;
は?

逆にコマンドとして実装できるかな?
96名無しさん@お腹いっぱい。:2008/04/23(水) 20:16:07
それらは構文要素であって、
[ は構文要素ではない。

コマンドライン的には、エスケープしてやればそういうコマンドを
入力することは可能。俺の手元のbashでは、

$ \&
bash: &: command not found
$ \;
bash: ;: command not found

こうなるw
97名無しさん@お腹いっぱい。:2008/05/03(土) 01:10:30
[以外で一文字コマンドに出来る/出来そうな文字は何があるか?

(
\
"
'
とかなら無理矢理コマンドにできるかな?(はできそうだな
98名無しさん@お腹いっぱい。:2008/05/03(土) 20:29:33
シェルの構文規則的に無理な希瓦斯
99名無しさん@お腹いっぱい。:2008/05/05(月) 03:54:44
((
とかならできるか?

ありそうでないよな、[以外の一文字コマンド、特に記号とか。

と思ったら、bash限定?であったな。
.
100名無しさん@お腹いっぱい。:2008/05/05(月) 07:36:16
>>99
マジで言ってる? 大間違いなことを(下2行)
101名無しさん@お腹いっぱい。:2008/05/06(火) 00:30:28
>>100
あれ?コマンド扱いじゃないんだっけ?
ビルトインで
102名無しさん@お腹いっぱい。:2008/05/17(土) 12:58:02
あれ? テストスレじゃなかったの?
103名無しさん@お腹いっぱい。:2008/05/18(日) 22:37:48
:
104名無しさん@お腹いっぱい。:2008/05/18(日) 22:39:51
105名無しさん@お腹いっぱい。:2008/10/18(土) 00:52:12
cygwinいじってたら、英字で一文字コマンドがあるな
x

Xが立ち上がったw
106名無しさん@お腹いっぱい。:2009/08/16(日) 10:51:47
1文字だけのコマンドというと、他に w があるな
107名無しさん@お腹いっぱい。:2009/08/19(水) 12:34:26
X
108名無しさん@お腹いっぱい。:2010/09/14(火) 03:19:43
昔 if/while [ 条件 ];then って構文だと思ってた時期があったな.
確か初めてcygwin使ったときに,binディレクトリの一番上に [.exe ってのがあるのを見て,
それがコマンドなのを知ったんだっけ.なつかしい.
109名無しさん@お腹いっぱい。:2011/06/14(火) 13:59:29.87
[ と [[ と test の違いを教えて
110名無しさん@お腹いっぱい。:2011/06/14(火) 14:45:09.91
[[ は bash の構文
[ は test のエイリアス(ハードリンク)

test と [ はシェル内蔵版もあるけど、基本的には独立したコマンドで、
[ という名前で呼び出された場合、最後のオプションが ] であることを確認したりとか
振る舞いが異なる。
111名無しさん@お腹いっぱい。:2011/06/14(火) 14:52:39.23
>>110
ありがとう!

$ ls -li /usr/bin/{[,test}
685996 -rwxr-xr-x 1 root root 30156 12月 17 05:10 /usr/bin/[
686039 -rwxr-xr-x 1 root root 26056 12月 17 05:10 /usr/bin/test

でもハードリンク?
inodeもファイルサイズも違うみたいなんだけど何でだろ?

ちなみにLinuxで、coreutils-8.7
112名無しさん@お腹いっぱい。:2011/06/14(火) 15:12:03.51
うーん

違うこともあるかも
113名無しさん@お腹いっぱい。:2011/06/14(火) 15:21:24.84
まぁ深くは考えない事にします
[[ はbashの構文というのと test より [ のほうがメジャーという事にしときます。
うちの環境ではtestのmanは入ってるのに[のmanが入ってなかったのに少しショックを受けましたが。
114名無しさん@お腹いっぱい。:2011/06/14(火) 21:12:57.11
>>111
coreutils だと [ と test は別。
[ のソースは lbracket.c で、中身はこんなん。

#define LBRACKET 1
#include "test.c"
115名無しさん@お腹いっぱい。:2011/06/14(火) 21:16:47.42
>>113
> [のmanが入ってなかった
/usr/share/man/man1/[.1.gz ない?
116名無しさん@お腹いっぱい。:2011/06/15(水) 07:29:18.65
> #include "test.c"

内容的には同じかな?
117名無しさん@お腹いっぱい。:2011/06/15(水) 08:27:38.53
#define LBRACKET 1 でちょっとだけ変わる。
--help の解釈とか。
118名無しさん@お腹いっぱい。:2011/07/14(木) 09:34:57.09
>>10 って出典はよしだともこさんのroot訪問記かなぁ?
119名無しさん@お腹いっぱい。:2011/07/14(木) 09:36:45.73
coreutils は、自分の名前によって挙動が変わるプログラムは邪悪だ、
という哲学なのかな。
120名無しさん@お腹いっぱい。:2011/10/31(月) 17:56:21.16
>>119
GNUのcoding standardに書いてある。
121名無しさん@お腹いっぱい。:2011/10/31(月) 18:11:09.42
具体的にどこに?
122名無しさん@お腹いっぱい。:2011/10/31(月) 19:11:28.11
>>121
https://www.gnu.org/prep/standards/standards.html#User-Interfaces
> Please don’t make the behavior of a utility depend on the name used to invoke it.
123名無しさん@お腹いっぱい。:2011/10/31(月) 21:55:19.68
なるほど。
ありがとう。
124電脳プリオン 忍法帖【Lv=40,xxxPT】(4+0:8) 【20.5m】
  ∧_∧
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/ ←>>63
 (_フ彡        /