2007-08-31
function PS-ssh-agent { param([switch]$k) if($k) { $con = ssh-agent -k; $reg = new-object System.Text.RegularExpressions.Regex("echo (.*)"); echo $reg.Match($con).Groups[1].value; Remove-Item env:SSH_AUTH_SOCK Remove-Item env:SSH_AGENT_PID return; }else{ $con = ssh-agent -c; $reg = new-object System.Text.RegularExpressions.Regex("SSH_AGENT_PID (\d+)"); New-Item env:SSH_AGENT_PID -value $reg.Match($con).Groups[1].value | Out-Null; $reg = new-object System.Text.RegularExpressions.Regex("SSH_AUTH_SOCK (/tmp/ssh-\w+/agent\.\d+)") New-Item env:SSH_AUTH_SOCK -value $reg.Match($con).Groups[1].value | Out-Null; $reg = new-object System.Text.RegularExpressions.Regex("echo (.*)"); echo $reg.Match($con).Groups[1].value; return; } }
eval したときと同じように環境変数を設定する。
-k でプロセスの削除