お知らせ

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

#1 2014-05-02 12:57:42

Sekko
メンバ
登録日: 2007-12-10

スクリプトファイル権限付与ができない

スクリプトファイル権限付与ができません。

1.スリフトファイルはウェブサイトからコピーしてきて gedit で編集しました。
 ・スクリプトファイル名:spacer.pl
2.ファイルの保存先:home/ユーザ/bin
  ここは PATH が通っているディレクトリと聞いています。
3.権限付与ー端末から操作
  コード:~$ chmod a+x spacer.pl
  これでうまく行き、全角-半角文字間に半角スペースが挿入されます。 
・ファイルの内容:
 名前;spacer.pl
  コード:
  #!/usr/bin/perl
  use strict;
  use warnings;
  use Encode;
  my $east = qr/(?!\p{M})(?:\p{Han}|\p{Katakana}|\p{Hiragana})/;
  my $west = qr/(?!\p{M})(?:\p{Latin}|\p{Greek}|\p{Cyrillic})/;
  binmode STDOUT, ':utf8';
  while(<>){
      $_ = decode 'utf8', $_;
      s/($east)($west)/$1 $2/g;
      s/($west)($east)/$1 $2/g;
      print;
  }

・Ubuntu のバージョン:Ubuntu 14.04 64bit 版(日本語 Remix )にも spacer.pl を適用しようとしたが
  Linux-Mint Petra 16もダメだった。

・経緯:下記でご指導を頂き、
 日本語フォーラム https://forums.ubuntulinux.jp/viewtopic.php?pid=103422#p103422
  件名:「テキストエディタ:半角スペースをワンクリックで挿入」
  
4月18日に本家サイトからダウンロードした Ubuntu 14.04 32bit 版で、上記1.〜3.の設定を行ったところ、うまく行きました。権限付与ができ、スクリプトが期待通りに動いてくれました。
Ubuntu 14.04日本語 Remix がリリースされたので、64bit 版をインストールして、端末から32bit 版の時と同じ作業を行ったのですが、下記のエラー。
 ~$ chmod a+x spacer.pl
  chmod: `spacer.pl' にアクセスできません: そのようなファイルやディレクトリはありませんと、なりうまく行きません。ターゲットを/bin に変更して試しましたが、ダメでした。
Linux-Mint での結果も同様でうまく行きません。

どこで間違いを犯しているのは自力では分からず、ご助力いただけるとありがたいです。

・追記:Windows 7、Ubuntu 14.04、Ubuntu 12.04、Linux=Mint のマルチブート環境です。
    ;CPU Core i 3570K メモリ 8GB

オフライン

 

#2 2014-05-02 17:59:27

makopi
メンバ
登録日: 2009-11-01

Re: スクリプトファイル権限付与ができない

spacer.pl があるディレクトリーまで端末で移動していただいて、

pwd
ls -l
echo $PATH

の結果を教えていただけませんか?

オフライン

 

#3 2014-05-02 21:19:38

Sekko
メンバ
登録日: 2007-12-10

Re: スクリプトファイル権限付与ができない

makopi さん、ご連絡有難うございます。
ご指示の通りに端末を操作。

echo SPATH の結果:
 hk@hk-Ub64:/bin$ echo SPATH
 SPATH
これは spacer.pl が機能している32ビット版のUbuntu 14.04 と同じ結果です。
32ビット版の pwd/ls -l も内容こそ異なりますが160行ほどになります。

pwd
ls -l の結果は160行ほどあり、ここに貼り付けるのが憚れます。
makopi さんご指定のファイル共有サービスがあればそちらに160行ほどのテキストファイルをアップロードすることもできます。

ご指示をお待ちしています。

オフライン

 

#4 2014-05-02 21:25:30

STGSAGWAN
ゲスト

Re: スクリプトファイル権限付与ができない

わざわざコマンドでやる必要はないです。
Ubuntuなら、ファイルを右クリックしてプロパティを表示して、「プログラムとして実行できる」にチェックを入れるだけです。

 

#5 2014-05-03 08:00:33

ry
メンバ
登録日: 2008-07-30

Re: スクリプトファイル権限付与ができない

Sekko による投稿:

ご指示の通りに端末を操作。

echo SPATH の結果:

SPATH では有りません。 $PATH (1文字目は「ドル記号」) です。

オフライン

 

#6 2014-05-03 09:12:39

makopi
メンバ
登録日: 2009-11-01

Re: スクリプトファイル権限付与ができない

#1 より

1.スリフトファイルはウェブサイトからコピーしてきて gedit で編集しました。
 ・スクリプトファイル名:spacer.pl
2.ファイルの保存先:home/ユーザ/bin
  ここは PATH が通っているディレクトリと聞いています。
3.権限付与ー端末から操作
  コード:~$ chmod a+x spacer.pl
  これでうまく行き、全角-半角文字間に半角スペースが挿入されます。 

spacer.pl の保存先が /home/ユーザ/bin なのに  /home/ユーザ で chmod を実行しています。
これは 3. の ~$ でわかります。
だから、

 ~$ chmod a+x spacer.pl
  chmod: `spacer.pl' にアクセスできません: そのようなファイルやディレクトリはありません

のメッセージになるのです。

この時点では
chmod a+x ~/bin/spacer.pl
になると思います。

今は /bin にあるようなので
sudo chmod a+x /bin/spacer.pl
でいけると思います。


以下は説明です。

> pwd
spacer.pl がどこにあるか確認。

> ls -l
これはすみません。自分の配慮不足です。
(お願いした時は端末で /bin にいるはずなので)
ls -l spacer.pl
が正しいです。

> echo $PATH
ry さんがおっしゃるとおり 'S' ではなく '$' (ドル) です。
/home/ユーザ/bin を作った後にログアウトもしくはPC再起動を行ったか?が判断できます。
amd64 版でも一旦ログアウトする事で /home/ユーザ/bin にパスが通ることは確認しています。

オフライン

 

#7 2014-05-03 11:20:19

Sekko
メンバ
登録日: 2007-12-10

Re: スクリプトファイル権限付与ができない

有難うございました。おかげさまで半角スペースのワンクリック挿入が出来るようになりました。
Ubuntu 14.04日本語 Remix 版と Ubuntu GNOME で確認しました。残念ながら Linux Mint ではPerl スクリプトが機能してくれませんでした。次期バージョンでどうなるか?

makopi による投稿:

この時点では
chmod a+x ~/bin/spacer.pl
になると思います。

今は /bin にあるようなので
sudo chmod a+x /bin/spacer.pl
でいけると思います。

"chmod: `/bin/spacer.pl' にアクセスできません: そのようなファイルやディレクトリはありません"
のエラーになります。
一方、"chmod a+x ~/bin/spacer.pl"のコードが通り、64bit 版の14.04で半角スペースの自動挿入ができるようになりました。
Ubuntu GNOME でも半角スペースツールの利用が出来ました。

makopi による投稿:

以下は説明です。

> pwd
spacer.pl がどこにあるか確認。

> ls -l
これはすみません。自分の配慮不足です。
(お願いした時は端末で /bin にいるはずなので)
ls -l spacer.pl
が正しいです。

> echo $PATH
ry さんがおっしゃるとおり 'S' ではなく '$' (ドル) です。
/home/ユーザ/bin を作った後にログアウトもしくはPC再起動を行ったか?が判断できます。
amd64 版でも一旦ログアウトする事で /home/ユーザ/bin にパスが通ることは確認しています。

"pwd"の説明など詳しい解説をいただき有り難うございます。
ry さん、STGSAGWAN さんにもこの場をお借りしてお礼申し上げます。有難うございました。
PS:
蛇足ですが ls -l hk@hk-desktop:~$ pwd
/home/hk
hk@hk-desktop:~$ echo PATH
PATH
hk@hk-desktop:~$ ls -l の結果を貼っておきます。
合計 52
drwxrwxr-x 2 hk   hk   4096  5月  2 07:13 bin
-rw-r--r-- 1 hk   hk   8980  4月 19 19:12 examples.desktop
drwxr-xr-x 2 root root 4096  4月 29 19:33 usr
drwxr-xr-x 2 hk   hk   4096  4月 30 15:13 ダウンロード
drwxr-xr-x 2 hk   hk   4096  4月 19 20:59 テンプレート
drwxr-xr-x 2 hk   hk   4096  5月  2 20:37 デスクトップ
drwxr-xr-x 2 hk   hk   4096  5月  2 20:37 ドキュメント
drwxr-xr-x 2 hk   hk   4096  4月 30 14:32 ビデオ
drwxr-xr-x 2 hk   hk   4096  5月  3 08:28 ピクチャ
drwxr-xr-x 2 hk   hk   4096  4月 19 20:59 ミュージック
drwxr-xr-x 2 hk   hk   4096  4月 19 20:59 公開

オフライン

 

#8 2014-05-03 14:22:49

makopi
メンバ
登録日: 2009-11-01

Re: スクリプトファイル権限付与ができない

echo $PATH

を端末へコピー&ペーストしてから実行してみてください。

makoto@t552-u1404:~/Desktop$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
makoto@t552-u1404:~/Desktop$

こんな風になるはずですよ。
spacer.pl と入力・実行した場合、このディレクトリーの順番に spacer.pl を探して実行します。

~/bin がある場合は、
/usr/ユーザー名/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
となるはずです。

これ以上はオフトピになりそうなので。

オフライン

 

#9 2014-05-03 17:00:14

Sekko
メンバ
登録日: 2007-12-10

Re: スクリプトファイル権限付与ができない

makopi による投稿:

echo $PATH
を端末へコピー&ペーストしてから実行してみてください。

makoto@t552-u1404:~/Desktop$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
makoto@t552-u1404:~/Desktop$

こんな風になるはずですよ。
spacer.pl と入力・実行した場合、このディレクトリーの順番に spacer.pl を探して実行します。

~/bin がある場合は、
/usr/ユーザー名/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
となるはずです。

結果は、
hk@hk-Ub64:~$ echo $PATH
/home/hk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

これらはPATHが通っているディレクトリということですね。勉強になりました。

オフライン

 

Board footer

Powered by FluxBB