トップページ
ひらく | たたむ | ページトップ
↓マウスで反転選択した文字を検索
Cygwin
   
ページ内検索 ページ外検索
検索したい文字を入力して
ENTERを押すと移動します。
\n
[ トップページ ]
[ ____CommandPrompt ] [ ____JScript ] [ ____MySQL ] [ ____Cygwin ] [ ____Java ] [ ____Emacs ] [ ____Make ] [ ____Perl ] [ ____Python ] [ ____OpenGL ] [ ____C# ] [ ____StyleSheet ] [ ____C++ ] [ ____Winsock ] [ ____Thread ] [ ____VisualStudio ] [ ____C ] [ ____Win32API ] [ ____Lua ] [ ____PhotoShop ]
ヘッダ検索
___

■ SYNTAX




___

■ Result

SYNTAX $? # たとえば tool の成否を調べる wget "http://ur" | grep "現在おさがしの物件はありません" # RET: 1 echo $? POINT 関数内で宣言した変数は呼び出しshellで使用できる < -> local i=1; で 関数local
___

■ 空白の扱い\spaceで対処

DESC alias cdwinbin="cd C:/Program\ Files/"
___

■ stdout出力

cygwin foo | cat POINT: program とはbit列を入力として、bit列を出力するもの fileもbit列 ゆえにfile のリダイレクトやパイプという仕組みができる
___

■ system

___

■ Shell.とは

DESC program を起動すること 存在理由
  プログラムを実行させる、データを保存する == タイヤとエンジン
  ハンドルに相当する操作する仕組みが必要それがシェル( 制御システム )
   ユーザの指令を解釈して実行するプログラムシェルとはコマンドインタープリタ
仕組み  コマンドラインをシェルのプロセスが読み取って、あるコマンドがコールされたことがわかる  2.ps のプログラムが実行されるプロセスを作成  3.ps プログラムが動き出す DESC
    # どちらも Program であることにはかわりなし
    #
      kernell == OS 機能を実装している program
      shell   == usr cmd を解釈 して kernell を call する program
usr -> os の仲介役 の種類 1. shell 2. tty driver : c-c 3. system call : c 言語を利用する際の kernell 窓口 shell の種類
   sh  : history 機能をもたない sh ( scr intp に使用 )
   bash: history , cmdline 編集をもつ sh
shell の変更できます 1. 直接 shell 起動. EX. tcsh( cld ps として起動 ) 2. ps をのっとる . exec cmdName shell が program を呼ぶ仕組み 1. PATH 検索 2. ps 作成 3. / があれば直接その path を実行
___

■ Ridirect.Pipe

DESC シェルは「キーボードから入力し,画面に出力する」ようになっている。 入力と出力の方法を変更する場合には,リダイレクトを使う 出力先、入力先の指定はファイルディスクリプタという番号を使う。 0, 1, 2 はシステム側で予約されている。 番号を指定する( NO> )ことで特定の出力先だけを変更する。

    test.sh > log.txt 2> err.txt

    # エラーを出力したくないときは /dev/null へ捨てる。
    test.sh 2> /dev/null
入力 : プログラムが外部から情報を受け取ること 出力 : プログラムが外部へ情報を出力すること チャネル : データが流れる通路 ファイルディスクリプタ : 各processがopenしているファイルをUNIXが管理する際に使用する整数値( shell では10個まで) チャンネル(通路)0:キーボード  チャンネル(通路)1:画面 チャンネル(通路)2:画面 ( エラー情報をだすためのチャンネル ) 小話 昔はタイプライタ端末といって、紙に出力していた チャンネルの合流 SYNTAX cmd [arg] > foo.txt ( ch2 は端末へ, err を知らせるため )
    test.sh > log.txt 2> err.txt
    test.sh > log.txt 2>&1
___

■ Pipe

DESC プログラムが標準入力から読み込んで、標準出力へ出力するとき、パイプができる

  //OK
 cat <  test.txt | cat | cat  

  // ERROR echo は標準入力から読まないのでエラー?
  cat <  test.text | echo 

  // 小文字を大文字に変換
  echo this is a pen | tr a-z A-Z
シェルのコマンド制御のメタキャラクタ  cmd1 ; cmd2  コマンド1 &  コマンド2 ( 平行して実行 )  ( ps ; ls ) > t1 ps, ls の結果をまとめて t1に メタキャラクタの注意点  そのまま使用したい場合は \ ( エスケープする )  ””、 ’’クォートする"$var" は変数展開される'$var' は変更されない shell parse 順序
   $xxx : 置換
   置換結果を処理 cmd arg
    echo "foo$USER"
    echo "fooXXX"
    $1 == fooXXX として echo が処理
___

■ 置換(Substitute)

DESC 置換とはあるものを、別のものでおきかえること シェルの場合の置換 特別な意味をもつ記号を別のものに変換  変数置換 EX : expr $a + $b , ("" の中では展開される ) WARNING '$foo' は置換されない : mv `find -type f -name "$word" ` POINT ${foo} // {} 範囲を明示する  コマンド置換 EX : foo='expr $a + $b' ( バッククォート )  ヒストリ置換 !99  ファイル名置換  * : 任意の文字列にマッチ ? : 任意の一文字にマッチ [...] : ... のどれか一文字にマッチ, クラス表現   [ 上記の表記を含む引数 ]があった場合、 シェルはマッチするファイルを探して、ファイル名の並びで置き換える    WARNING: シェルはすでにあるファイルにしか置き換えない cp *.c backup/*.c // BAD POINT 展開結果をみるには echo をつける、echo cp *.txt ./ ファイル置換は変換対象にマッチングしなければ、そのまま出力される mv *.sss foo.txt  (ファイル名置換後)−> mv *.sss foo.txt となる ''で置換の抑制 cmd にそのまま渡す : sed 's/foo*/bar/' tmp.txt
___

■ ヒアドキュメント(HereDocument)

DESC まとめて出力したい時に cat < < EOS
___

■ Argument

REF getopts
   #bash > ./foo.sh a b c  
   // 3
   echo $#
   
   // a b c 
   echo $*
   
   // ./foo.sh
   echo $0
   // a 
   echo $1
   // b
   echo $2
   
   // c
   echo $3
___

■ Wildcard

DESC shell が [ file をマッチング ]する時に使用 * : 任意の1文字以上の文字列 ? ? : 任意の一文字 []: {}: Brace

      # foo bar goo
      ls

      echo *  # echo foo bar goo と展開される.

      # RET: foo bar goo
WARNING regexp とは異なる [ . ] : 任意の一文字ではない POINT wildcard の置換結果は echo ですれば OK
___

■ 改行(newline)

SYNTAX $'\n' DESC 改行するには $'\n' POINT
    // RET
    //   aaa
    //   bbb
    echo $'aaa\nbbb'

















NINJAIDX 3