{"id":372,"date":"2018-01-08T14:33:39","date_gmt":"2018-01-08T14:33:39","guid":{"rendered":"http:\/\/www.liutianfeng.com\/?p=372"},"modified":"2021-09-15T01:33:42","modified_gmt":"2021-09-15T01:33:42","slug":"shell%e8%84%9a%e6%9c%ac%e5%ae%9e%e7%8e%b0%ef%bc%9a%e9%9a%8f%e6%9c%ba%e4%ba%a7%e7%94%9f1-39%e4%b8%ad%e7%9a%84n%e4%b8%aa%e6%95%b0%e5%ad%97%ef%bc%8c%e4%b8%94%e4%b8%8d%e8%83%bd%e9%87%8d%e5%a4%8d%e3%80%82","status":"publish","type":"post","link":"https:\/\/www.liutianfeng.com\/?p=372","title":{"rendered":"shell\u4e2d\u751f\u6210\u968f\u673a\u6570\u3001\u968f\u673a\u5b57\u7b26\u4e32"},"content":{"rendered":"<h2>1\u3001\u968f\u673a\u6570<\/h2>\n<p>\u6211\u4eec\u7528\u5230\u7684\u6982\u5ff5\u662f\u6570\u7ec4\u3002\u6bcf\u6b21\u51fa\u73b0\u6570\u5b57\u4ee5\u540e\uff0c\u6bd4\u5bf9\u6570\u7ec4\u4e2d\u7684\u5176\u4ed6\u503c\uff0c\u5982\u679c\u91cd\u590d\u5c31\u91cd\u65b0\u751f\u6210\uff0c\u77e5\u9053\u751f\u6210\u6240\u6709\u7684\u4e0d\u91cd\u590d\u6570\u7ec4\u4e3a\u6b62\u3002<\/p>\n<p><strong>shell\u811a\u672c\u5b9e\u73b0\uff1a\u968f\u673a\u4ea7\u751f1-39\u4e2d\u7684N\u4e2a\u6570\u5b57\uff0c\u4e14\u4e0d\u80fd\u91cd\u590d\u4ee3\u7801\uff1a<\/strong><\/p>\n<pre class=\"pure-highlightjs\"><code class=\"\">#!\/bin\/bash\r\n#\r\n# Date: 2018-01-09\r\n# Script Name: m.sh\r\n# Author: Liemer_Lius\r\ndeclare -a ARRAY\r\nread -p \"[1-39]: \" ELENUM\r\nfunction COMELE {\r\n  for J in `seq 0 $[${#ARRAY[@]}-1]`; do\r\n    if [ $1 -eq ${ARRAY[$J]} ]; then\r\n      return 1\r\n    fi\r\n  done\r\n  return 0\r\n}\r\n\r\nfor I in `seq 0 $[$ELENUM-1]`; do\r\n  while true; do\r\n    ELEMENT=$[$RANDOM%40]\r\n    COMELE $ELEMENT\r\n    if [ $? -eq 0 ]; then \r\n      break\r\n    fi\r\n  done\r\n  ARRAY[$I]=$ELEMENT\r\n  echo \"${ARRAY[$I]}\"\r\ndone\r\n<\/code><\/pre>\n<p>\u5176\u4e2d\u7684\u51fd\u6570COMELE\uff0c\u5c31\u662f\u5224\u65ad\u6211\u4eec\u7684\u53c2\u6570\uff0c\u662f\u5426\u548c\u6570\u7ec4\u4e2d\u5df2\u6709\u7684\u6570\u503c\u662f\u5426\u76f8\u7b49\u7684\u3002<\/p>\n<p>\u5728while\u5faa\u73af\u4e2d\uff0c\u6211\u4eec\u4f1a\u4e00\u76f4\u6d4b\u8bd5$ELEMENT\u548c\u6570\u7ec4\u4e2d\u7684\u503c\uff0c\u4e0d\u751f\u6210\u975e\u91cd\u590d\u7684\u503c\u5c06\u4e0d\u4f1a\u505c\u6b62\u3002\u6bcf\u6b21\u4ea7\u751f\u4e86\u7b26\u5408\u6761\u4ef6\u7684ELEMENT\uff0c\u5c31\u5c06\u5176\u4e30\u5bcc\u8fdb\u5c5e\u7ec4ARRAY\u91cc\u9762\u3002<\/p>\n<p><strong>\u6267\u884c\u7ed3\u679c\uff1a<\/strong><\/p>\n<pre class=\"pure-highlightjs\"><code class=\"\">[root@Master ~]# .\/m.sh \r\n[1-39]: 3     \r\n38\r\n9\r\n29\r\n[root@Master ~]# .\/m.sh 39\r\n[1-39]: 39\r\n3\r\n19\r\n16\r\n25\r\n28\r\n5\r\n11\r\n10\r\n1\r\n29\r\n6\r\n12\r\n17\r\n35\r\n24\r\n30\r\n20\r\n7\r\n32\r\n18\r\n26\r\n0\r\n38\r\n2\r\n33\r\n39\r\n36\r\n22\r\n9\r\n37\r\n27\r\n15\r\n31\r\n34\r\n23\r\n14\r\n4\r\n13\r\n21\r\n<\/code><\/pre>\n<h2>2\u3001\u968f\u673a\u5b57\u7b26\u4e32<\/h2>\n<pre class=\"pure-highlightjs\"><code class=\"\">\u65b9\u6cd51\uff1a\r\ndate +%N | md5sum | cut -c 1-8\r\n\u65b9\u6cd52\uff1a\r\ntop -d 1\u00a0-n 1 | md5sum | cut -c 1-8\r\n\u65b9\u6cd53\uff1a\r\necho $RANDOM\u00a0\u00a0 | md5sum | cut -c 1-8\r\n\u65b9\u6cd54\uff1a\r\nopenssl rand base64 4 |\u00a0md5sum | cut -c 1-8<\/code><\/pre>\n<h2>3\u3001\u968f\u673a\u5b57\u7b26\u4e32\u5927\u5c0f\u5199\u5b57\u6bcd\u6570\u5b57<\/h2>\n<pre class=\"pure-highlightjs\"><code class=\"\">#!\/bin\/bash\r\n# bash generate random alphanumeric string\r\n\r\n# bash generate random 32 character alphanumeric string (upper and lowercase) and \r\nNEW_UUID=$(cat \/dev\/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)\r\n\r\n# bash generate random 32 character alphanumeric string (lowercase only)\r\ncat \/dev\/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1\r\n\r\n# Random numbers in a range, more randomly distributed than $RANDOM which is not\r\n# very random in terms of distribution of numbers.\r\n\r\n# bash generate random number between 0 and 9\r\ncat \/dev\/urandom | tr -dc '0-9' | fold -w 256 | head -n 1 | head --bytes 1\r\n\r\n# bash generate random number between 0 and 99\r\nNUMBER=$(cat \/dev\/urandom | tr -dc '0-9' | fold -w 256 | head -n 1 | sed -e 's\/^0*\/\/' | head --bytes 2)\r\nif [ \"$NUMBER\" == \"\" ]; then\r\n  NUMBER=0\r\nfi\r\n\r\n# bash generate random number between 0 and 999\r\nNUMBER=$(cat \/dev\/urandom | tr -dc '0-9' | fold -w 256 | head -n 1 | sed -e 's\/^0*\/\/' | head --bytes 3)\r\nif [ \"$NUMBER\" == \"\" ]; then\r\n  NUMBER=0\r\nfi<\/code><\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>\u8f6c\u8f7d\u8bf7\u6ce8\u660e\uff1a<a href=\"https:\/\/www.liutianfeng.com\">liutianfeng.com<\/a> &raquo; <a href=\"https:\/\/www.liutianfeng.com\/?p=372\">shell\u4e2d\u751f\u6210\u968f\u673a\u6570\u3001\u968f\u673a\u5b57\u7b26\u4e32<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>1\u3001\u968f\u673a\u6570 \u6211\u4eec\u7528\u5230\u7684\u6982\u5ff5\u662f\u6570\u7ec4\u3002\u6bcf\u6b21\u51fa\u73b0\u6570\u5b57\u4ee5\u540e\uff0c\u6bd4\u5bf9\u6570\u7ec4\u4e2d\u7684\u5176\u4ed6\u503c\uff0c\u5982\u679c\u91cd\u590d\u5c31\u91cd\u65b0\u751f\u6210\uff0c\u77e5\u9053\u751f\u6210\u6240\u6709\u7684\u4e0d\u91cd [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[31],"tags":[],"_links":{"self":[{"href":"https:\/\/www.liutianfeng.com\/index.php?rest_route=\/wp\/v2\/posts\/372"}],"collection":[{"href":"https:\/\/www.liutianfeng.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.liutianfeng.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.liutianfeng.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.liutianfeng.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=372"}],"version-history":[{"count":4,"href":"https:\/\/www.liutianfeng.com\/index.php?rest_route=\/wp\/v2\/posts\/372\/revisions"}],"predecessor-version":[{"id":1095,"href":"https:\/\/www.liutianfeng.com\/index.php?rest_route=\/wp\/v2\/posts\/372\/revisions\/1095"}],"wp:attachment":[{"href":"https:\/\/www.liutianfeng.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=372"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.liutianfeng.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=372"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.liutianfeng.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=372"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}