[
  {
    "path": "README.md",
    "content": "# Linux 实战技能100讲\n课程相关文档\n"
  },
  {
    "path": "demo/1.sh",
    "content": "#!/bin/bash\n# demo\ncd /var/ \nls \npwd \ndu -sh \ndu -sh *\n"
  },
  {
    "path": "demo/10.sh",
    "content": "#!/bin/bash\n# root  user1  other\nif [ $USER = root    ] ; then\n\techo \"root\"\nelif [ $USER = user1   ] ;then\n        echo \"user1\"\nelse\n\techo \" other user\"\nfi\n\n"
  },
  {
    "path": "demo/11.sh",
    "content": "#!/bin/bash\n\n# demo  if then  if  then  fi  fi \n\nif [ $UID = 0 ] ; then\n\techo \" please run\"\n        if [ -x /tmp/10.sh ] ; then\n              /tmp/10.sh\n        fi\nelse\n        echo \" switch user  root \"\nfi\n"
  },
  {
    "path": "demo/12.sh",
    "content": "#!/bin/bash\n\n# case demo\n\ncase \"$1\" in\n      \"start\"|\"START\")\n       echo $0 start.....\n      ;;\n\n      \"stop\")\n       echo $0 stop.....\n      ;;\n\n      \"restart\"|\"reload\")\n       echo $0 restart....\n      ;;\n      *)\n       echo \"Usage: $0 {start|stop|restart|reload}\"\n      ;;\nesac\n\n"
  },
  {
    "path": "demo/13.sh",
    "content": "#!/bin/bash\n\n# help  display help help\n\n#for pos  in  $*\n#do\n#\tif [ \"$pos\" = \"help\" ]; then\n#            echo $pos $pos\n#        fi\n#\n#\n#done\n\nwhile [ $# -ge 1 ]\ndo\n   if [ \"$1\" = \"help\" ]; then\n             echo $1 $1\n   fi\n   shift\ndone\n\n"
  },
  {
    "path": "demo/14.sh",
    "content": "#!/bin/bash\n\n# functions\n\ncheckpid() {\n\n   local i\n\n   for i in $* ; do\n       [ -d \"/proc/$i\" ] && return 0\n   done\n\n   return 1\n\n\n\n}\n"
  },
  {
    "path": "demo/15.sh",
    "content": "#!/bin/bash\n\n\n# signal demo\n\ntrap \"echo sig 15\" 15\ntrap \"echo sig 2\" 2\n\necho $$\n\nwhile :\ndo\n  :\ndone\n"
  },
  {
    "path": "demo/2.sh",
    "content": "#!/bin/bash\n\n# demo 2\ncd  /tmp\npwd\n"
  },
  {
    "path": "demo/3.sh",
    "content": "#!/bin/bash\n\ncat > /root/a.sh <<EOF\necho \"hello bash\"\nEOF\n"
  },
  {
    "path": "demo/4.sh",
    "content": "#!/bin/bash\n\n# test echo\n\necho $demo_var1\n"
  },
  {
    "path": "demo/5.sh",
    "content": "#!/bin/bash\n# demo\n\necho \"hello bash\"\ndu -sh \n\n"
  },
  {
    "path": "demo/6.sh",
    "content": "#!/bin/bash\n\n# PID Pname\n\necho $$\necho $0\n"
  },
  {
    "path": "demo/7.sh",
    "content": "#!/bin/bash\n\n# $1 $2... $9 ${10}\n\npos1=$1\npos2=${2-_}\n\necho $pos1\necho $pos2\n\n"
  },
  {
    "path": "demo/8.sh",
    "content": "#!/bin/bash\n\n# exit  demo\n\npwd\nexit 127\n"
  },
  {
    "path": "demo/9.sh",
    "content": "#!/bin/bash\n\n# if else demo\n\nif [ $USER = root   ] ;then\n   echo \" user root\"\n   echo $UID\nelse\n   echo \" other user\"\n   echo $UID\nfi\n"
  },
  {
    "path": "demo/README",
    "content": "\nshell 和 awk  演示脚本\n"
  },
  {
    "path": "demo/arg.awk",
    "content": "BEGIN{\n\nfor(x=0;x<ARGC;x++)\n    print ARGV[x]\nprint ARGC\n}\n"
  },
  {
    "path": "demo/kpi.txt",
    "content": "user1 70 72 74 76 74 72\nuser2 80 82 84 82 80 78\nuser3 60 61 62 63 64 65\nuser4 90 89 88 87 86 85\nuser5 45 60 63 62 61 50\n"
  },
  {
    "path": "demo/myfunc.awk",
    "content": "BEGIN{\n    function max(num1,num2)\n    {\n\tif(num1>num2)\n\t    return num1\n\telse\n\t    return num2\n    }\n}\n"
  },
  {
    "path": "demo/result.awk",
    "content": "{\nsum = 0\nfor( column = 2 ; column <= NF; column++ )\n\tsum += $column\n\naverage[$1] = sum / ( NF - 1 )\n\n\n\n\nif( average[$1] >= 80 )\n\tletter = \"S\"\nelse if( average[$1] >= 70 )\n\tletter = \"A\"\nelse if( average[$1] >= 60 )\n\tletter = \"B\"\nelse\n\tletter = \"C\"\n\nprint $1,average[$1],letter\n\nletter_all[letter]++\n\n\n\n}\nEND{\nfor( user in average )\n\tsum_all += average[user]\n\navg_all = sum_all / NR\nprint \"average all:\",avg_all\n\n\nfor( user in average )\n\tif( average[user] > avg_all )\n\t\tabove++\n\telse\n\t\tbelow++\n\nprint \"above\",above\nprint \"below\",below\nprint \"S:\",letter_all[\"S\"]\nprint \"A:\",letter_all[\"A\"]\nprint \"B:\",letter_all[\"B\"]\nprint \"C:\",letter_all[\"C\"]\n\n\n\n}\n"
  },
  {
    "path": "ppt/readme",
    "content": "\n"
  }
]