sed
BusyBox 1.18.3のバージョンを調べようとします。出力が--version
不思議です。
$ sed --version
This is not GNU sed version 4.0
次のコードは関連から取得されますsed.c
。
/* Lie to autoconf when it starts asking stupid questions. */
if (argv[1] && !strcmp(argv[1], "--version")) {
puts("This is not GNU sed version 4.0");
return 0;
}
タイトルは次のとおりです。
/*
* sed.c - very minimalist version of sed
*
* Copyright (C) 1999,2000,2001 by Lineo, inc. and Mark Whitley
* Copyright (C) 1999,2000,2001 by Mark Whitley <[email protected]>
* Copyright (C) 2002 Matt Kraai
* Copyright (C) 2003 by Glenn McGrath
* Copyright (C) 2003,2004 by Rob Landley <[email protected]>
*
* MAINTAINER: Rob Landley <[email protected]>
*
* Licensed under GPLv2, see file LICENSE in this source tree.
*/
「このバージョンのsedでサポートされている機能とコマンド」のリストもあります。特別に見えますが、sed
何がそんなに特別なのでしょうか? BusyBox用にカスタマイズされたのですか、それとも別のソースから来たのですか?
sed
たとえば、SE質問でこれをどのように参照するのですか?
答え1
BusyBoxはsed
実際にはそれをサポートしていません--version
。注釈が示すように、出力の目的は次のとおりです。構成スクリプト、人間には適していません。 (やや愚かな方法で人間を混乱させます!)BusyBox sedディレクティブで説明してください。ビジボックスバージョン(獲得を通じてbusybox | head -n 1
)。
一部のBusyBoxコマンドにはオプションの機能があり、どのコマンドがコンパイルされたかを判断する一般的な方法はありません。sed
何の機能もありません。
BusyBox sedがGNU sedではないと報告する理由は、互換性が十分であるため、実際にGNU sedを偽装しようとしていることです。一部の設定スクリプトは、GNU sed version nnn
BusyBox sedが許可できる文字列を探します。具体的には、GNU libcの設定スクリプト「壊れたガラスとさびた釘を詰めたバズーカポで頭に射撃を加える必要があります」(©Rob Landley)。
答え2
BusyBox用に作成されたsedのカスタムバージョン。私はあなたがインストールしたBusyBoxのバージョンでこれを参照します(例:BusyBox sed v-whatever)。