お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2008-09-29 23:49:44

tikhr
メンバ
From: Sendai
登録日: 2008-04-26

Nautilusスクリプトの書き方使い方

Nautilus(ファイルマネージャ)の右クリックメニューの[スクリプト]メニューから実行できるスクリプトの書き方。
nautilus-scripts について分かったことをまとめました。これをみて参考にしてもらえれたらな、と思います。
間違いがあれば訂正加筆修正お願いします。

使い方
ホームフォルダ以下にある [~/.gnome2/nautilus-scripts/](隠しフォルダ)の中にあるすべての実行可能なファイルが[スクリプト]メニューに表示されます。
実行可能であればスクリプトに限りません。またスクリプト言語にも依りません。
ファイルブラウザ上で右クリックメニューからスクリプトを選択すると、スクリプトが実行されます。

参考:
Nautilusでスクリプトを使用するには - @IT


スクリプトの種類
シェルスクリプトにコマンドを書き連ねる使い方がほとんどになると思います。
他に Python や Perl 、Ruby も(おそらく何でも)使用できます。ただし、かなり煩雑になるようです。

自分で書いた、あるいはダウンロードしたスクリプトは必ず実行可能なことを確かめてからこの nautilus-scripts フォルダに置いてください。
即反映されます。反映されないときは一度すべての Nautilus を閉じてみてください。
実行権限を与えるには端末で

コード:

chmod +x yourscript

とするか、ファイルの [プロパティ]>[アクセス権]>[プログラムとして実行できる] にチェックを入れてください。

参考:
http://itpro.nikkeibp.co.jp/article/COL … 24/230580/
http://itpro.nikkeibp.co.jp/article/COL … 24/230573/


スクリプトの例
以下はシェルスクリプトです。

開いているフォルダで端末を開く。

コード:

#!/bin/bash
gnome-terminal --working-directory="$PWD"

参考:
スクリプトがたくさん置いてあります。
125 Nautilus Scripts To Simplify Nautilus - Ubuntu Unleashed
Welcome to G-Script - Nautilus File Manager Scripts
nautilus-script - qwertsad's blog
Nautilus-actions configuration list - GrumZ.Net


Nautilus の引数
ローカル・フォルダで実行すると、選択したファイルパスがスクリプトの引数になります。複数のファイルの選択も可能です。リモート・フォルダ (例: Web や FTP の内容を表示するフォルダ) で実行すると、スクリプトには何も引き渡されません。
スクリプトでは Nautilus がセットした次の環境変数を使用することができます:

NAUTILUS_SCRIPT_SELECTED_FILE_PATHS 選択したパス名を改行で区切ったもの (ローカルのみ)
NAUTILUS_SCRIPT_SELECTED_URIS 選択した URI を改行で区切ったもの
NAUTILUS_SCRIPT_CURRENT_URI 現在位置(カレントディレクトリ)を示す URI (file:///home/user/New%20Folder)
NAUTILUS_SCRIPT_WINDOW_GEOMETRY ウィンドウの現在位置とサイズ([横px]x[縦px]+[ウィンドウ左上のx座標px]+[ウィンドウ左上のy座標px])

システム環境変数(注意:これらは変更しないで参照するだけにしてください。
PATH パス名のリスト
PWD カレントディレクトリ
HOSTNAME ホスト(PC)名
USER 現在のユーザ名
LANG ロケール(日本語なら、 jp_JP,UTF-8)
HOME ホームディレクトリ(/home/$USER)
LOGNAME ログインシェルのユーザ名
TERM 端末の種類

シェルスクリプトの特殊変数:
$0 スクリプトのパス名
$n 選択ファイル n のファイル名 (n= 1,2,3,...)
$arg $0 以外の引数すべて。似た変数に $@ と $* があるけれども、こちらは空白が入ったファイル名をうまく処理してくれません。
$# 選択ファイル(引数)の数
他の特殊変数についてはhttp://cyberam.dip.jp/linux_command/she … ain.html#2を参照してください。大体使用することができました。
また、$arg変数はデスクトップ上のファイル名は取得できないようです。

ファイルの絶対パス名を使用したいときには次のように書きます。

コード:

#!/bin/bash
for arg
do
zenity --info --text="$PWD/$arg"
done

コマンドライン引数に NAUTILUS_SCRIPT_SELECTED_* を使おうとすると失敗することがあります。
これはパス名の最後に改行文字が入っているためで、これを消そうとするのは厄介です。
パス名を取得するには可能な限り $PWD/$arg の組み合わせを使ったほうがはるかに楽です。
また変数はダブルクオテーション("")で囲います。


スクリプトで GUI を使う方法
シェルスクリプトでは簡単な GUI、ダイアログボックスなどを使用することができます。

zenity
Zenityでシェルスクリプトから簡単ダイアログ - ORCA愉快日記
やっぱり Sun がスキ! - zenityで簡単GUIプログラミング
「CLIとGUIの架け橋」zenity - 試験運用中なLinux備忘録
nautilus-scriptsとzenityでファイル編集を快適に
Zenity Manual(英語)

gdialog
gdialog - display dialog boxes from shell scripts - Digipedia

入力された情報を受けとるには(``)で囲います。

コード:

#!/bin/bash
v=`zenity --entry --title="テキスト入力" --text="適当な一行文"`
zenity --info --text="$v"

最後の編集者: tikhr (2008-10-26 21:06:19)

オフライン

 

Board footer

Powered by FluxBB