{"id":1416,"date":"2010-01-11T22:31:55","date_gmt":"2010-01-12T03:31:55","guid":{"rendered":"http:\/\/jianmingli.com\/wp\/?p=1416"},"modified":"2016-09-16T09:33:13","modified_gmt":"2016-09-16T14:33:13","slug":"bash-array","status":"publish","type":"post","link":"https:\/\/jianmingli.com\/wp\/?p=1416","title":{"rendered":"Bash Array"},"content":{"rendered":"<span id=\"Assign_Array_Elements\"><h3>Assign Array Elements<\/h3><\/span>\n<pre lang=\"bash\">\r\n# Assign array elements\r\necho\r\nmyArr[0]='one'\r\nmyArr[1]='two'\r\nmyArr[10]='ten'\r\n# Access array elements. *Curly brackets* are important.\r\necho \"\\${myArr[0]}: ${myArr[0]}\"  # ${myArr[0]}: one.\r\n# Echo all elements\r\necho \"\\${myArr[@]}: ${myArr[@]}\" # ${myArr[@]}: one two ten\r\n\r\n# Initialize array\r\necho\r\nmyArr3=( one two three four )\r\n# Echo all elements\r\necho \"\\$myArr3[@]: ${myArr3[@]}\" # $myArr3[@]: one two three four\r\n# Number of array elements\r\necho \"\\$#myArr3[@]: ${#myArr3[@]}\" # $#myArr3[@]: 4\r\n\r\n# Initialize array\r\necho\r\nmyStr2='one two three four'\r\nmyArr2=( $myStr2 )\r\n# Echo all elements\r\necho \"\\${myArr2[@]}: ${myArr2[@]}\" # ${myArr2[@]}: one two three four\r\n<\/pre>\n<span id=\"Tokenize_String_Into_Array\"><h3>Tokenize String Into Array<\/h3><\/span>\n<pre lang=\"bash\">\r\nmyString2=one:two::four\r\noldIFS=$IFS\r\nIFS=:\r\nmyArr2=( $myString2 )\r\nIFS=$oldIFS\r\necho ${myArr2[0]}  # Output: 'one'\r\necho ${myArr2[1]}  # Output: 'two'\r\necho ${myArr2[2]}  # Output: ''\r\necho ${myArr2[3]}  # Output: 'four'\r\n<\/pre>\n<span id=\"Loop_Through_Array_Elements\"><h3>Loop Through Array Elements<\/h3><\/span>\n<pre lang=\"bash\">\r\nmyStrings='string1 string2 string3'\r\nmyStringArray=( ${myStrings} )\r\nfor myString in \"${myStringArray[@]}\"\r\ndo\r\n  echo \"${myString}\"\r\ndone\r\n<\/pre>\n<span id=\"Example:_Backup_Multiple_Directories\"><h3>Example: Backup Multiple Directories<\/h3><\/span>\n<pre lang=\"bash\">\r\n#!\/bin\/sh\r\nbackup_root=$HOME\r\ncurr_dir=`pwd`\r\ncurr_ts=`date +\"%m-%d-%y_%H-%M-%S\"`\r\ncurr_backup_dir=${backup_root}\/backup\/${curr_ts}\r\nmkdir -p ${curr_backup_dir}\r\n\r\ndirs_to_backup='tomcat lib'\r\ndirs=( ${dirs_to_backup} )\r\nfor d in \"${dirs[@]}\"\r\ndo\r\n  cd ${backup_root}\r\n  echo \"Backing up ${d} to ${curr_backup_dir}...\"\r\n  tar --exclude=\"logs\" --exclude=\"work\" --exclude=\"temp\" -pzcvf ${curr_backup_dir}\/${d}.tar ${d}\r\ndone\r\n\r\ncd ${curr_dir}\r\necho \"done.\"\r\n<\/pre>\n<span id=\"References\"><h2>References<\/h2><\/span>\n<p><a href=\"http:\/\/tldp.org\/LDP\/abs\/html\/arrays.html\">http:\/\/tldp.org\/LDP\/abs\/html\/arrays.html<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Assign Array Elements # Assign array elements echo myArr[0]=&#8217;one&#8217; myArr[1]=&#8217;two&#8217; myArr[10]=&#8217;ten&#8217; # Access array elements. *Curly brackets* are important. echo &#8220;\\${myArr[0]}: ${myArr[0]}&#8221; # ${myArr[0]}: one. # Echo all elements echo &#8220;\\${myArr[@]}: ${myArr[@]}&#8221; # ${myArr[@]}: one two ten # Initialize array &hellip; <a href=\"https:\/\/jianmingli.com\/wp\/?p=1416\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[65],"tags":[],"class_list":["post-1416","post","type-post","status-publish","format-standard","hentry","category-shell"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p8cRUO-mQ","_links":{"self":[{"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/1416","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1416"}],"version-history":[{"count":4,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/1416\/revisions"}],"predecessor-version":[{"id":11547,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/1416\/revisions\/11547"}],"wp:attachment":[{"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1416"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1416"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1416"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}