ChromeからすべてのタブをFirefoxに自動的に転送するシェルスクリプトを記述したい(Chromeからタブのリストを取得し、スクリプトを使用してFirefoxでタブを開く)。) Chrome、コマンドラインから開いているタブのリストを取得することはできますか?
この質問には答えられませんでした。上記の解決策はChrome OPがCLIで尋ねた開発ツールのためのものなので、これが私が見つけた解決策です:
strings ~/.config/google-chrome/Default/Current\ Session | grep -E '^https?://'
MacOSのみのソリューションの場合、オープンソースユーティリティ chrome-cli
を使用することもできます。あなたはHomebrewでインストールできます:
brew install chrome-cli
また、READMEから1つ注意してください。
JavaScriptを実行するには、最初に
View > Developer > Allow JavaScript from Apple Events
で許可する必要があります。
これは次のようになります。
$ chrome-cli list tabs
[1889] Edit - Super User
[1918] prasmussen/chrome-cli: Control Google Chrome from the command line
[1905] Yotto Winter Mix 19 by Yotto
$ chrome-cli list links
[1889] https://superuser.com/posts/1407956/edit
[1918] https://github.com/prasmussen/chrome-cli
[1905] https://soundcloud.com/yotto/yotto-winter-mix-2019
私はついに重複した質問を見つけました(それを見つけるために多くの検索を行いました): https://stackoverflow.com/questions/4968271/chrome-on-linux-query-the-browser-to- see-what-tabs-are-open
Chrome-cliについて知っていればいいのに...
これもOSXのみのソリューションです。私はapplescriptを使用しています。
function chrome_json_summary() {
local wincount=$(osascript -e 'tell application "Google Chrome" to get number of windows')
[ "$wincount" -eq 0 ] && echo "zero windows!" && return
local json="["
for (( i=1; i<=$wincount; i++)); do
json="$json""["
local cmd="osascript -e 'tell application \"Google Chrome\" to get number of tabs in window $i'"
local tabcount=$(eval $cmd)
for (( j=1; j<=$tabcount; j++)); do
local cmd="osascript -e 'tell application \"Google Chrome\" to get URL of tab $j of window $i'"
local url=$(eval $cmd)
[ $j -eq $tabcount ] && json="$json\"$url\"" || json="$json\"$url\","
done
[ $i -eq $wincount ] && json="$json]" || json="$json],"
done
echo "$json]"
}
このbash関数はapplescriptを使用して、すべてのchromeウィンドウと各ウィンドウの各タブを反復処理し、配列jsonの配列を作成します。
Jsonをローカルファイルに保存します。私はこれを使用してmy chrome状態をバックアップします。jscript生成をすべてapplescriptで実行した場合、このスクリプトはより高速になります。
JsonファイルをChromeにロードする別の関数があります。
chrome-cliに対するこれの利点は、osxのアップグレードでapplescript(および基本的なbashスクリプト)がほとんど壊れないことです。