イントロ
wslでもmacみたくopenを使いたい.
実装(bash)
bashでのopenです..bashrcに追加して読み込むようにしています.
open() {
local browser='/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe'
for arg; do
if [ -e "${arg}" ]; then
readlink -f ${arg} |xargs wslpath -w |powershell.exe start
elif [[ ${arg} =~ http ]]; then
echo "${arg}" | xargs "${browser}"
fi
done
}
実装(ruby)
rubyでの実装です.ほんとうはfishのfunctionにしたかったのですが,あんまり情報なくて.しかたがないので,~/bin/openとして置いて,これをfishのPATHに入れてうごかしています.openというのがubuntuの/sbinにあるようですが,それとは違うようです.
#!/usr/bin/env ruby
require 'open3'
target = ARGV[0] || '.'
case
when target == '.'
out, err, status = Open3.capture3("explorer.exe .")
when target.match(/^http/)
system "cmd.exe /c start #{target}"
else
puts "no command for #{target}"
end
追記
- 同じ用途に,xdg-open がUbuntuでは使えるらしい.
wslで確認が必要.
- source ~/git_hub/ruby_docs/multi_scale_22_text/excludes/semi_lattice_20f/open_script_onWSL/wsl_open.org