最近のmonoでJOG配布バイナリ OpenSim-0.9.0Devが動かない

Re: おかげさまで無事接続できました! Re: 最近のmonoでJOG配布バイナリ OpenSim-0.9.0Devが動かない

- Xpyoda Janus の投稿
返信数: 1

> と書き換えて、shinobar_magic.shという名前にして保存しました。
> ただ、その後どうやってそのシェルを実行するのかわからなかったので、
> 記述を丸ごとコピーして「端末」のコマンドラインにペーストしたら
> なんとそのスクリプトを無事実行してくれました。

shinobar_magic.sh のシェルスクリプトをコマンドとして実行させるには、次の2つの方法があります。

1. スクリプトファイルに「実行属性」をつけます。

    $ chmod +x shinobar_magic.sh        (ファイルに実行属性をつける)
    $ ./shinobar_magic.sh               (ファイルを実行。./ を頭につける)

2. シェルにスクリプトファイルを食わせる(実行属性はつけなくていい)。

    $ sh shinobar_magic.sh              (sh または bash にスクリプトファイル読み込ませて実行させる)

「$」は、bashの入力プロンプトですので入力しないでください (コマンド入力を待ってるよー、という印)。


以下、豆知識

通常、「chmod +x」で実行属性つけて実行できるのは、そのOS・CPUで実行できる実行可能バイナリーだけなのですが、ファイルの先頭が「#!」だと、OSが特別扱いして「#!」から後ろにあるファイルパス名を実行ファイルとそのコマンド引数として起動し、ファイルの2行目以降をその起動した実行ファイルに食わすという動作になります。shスクリプトの場合「#!/bin/sh  or  #!/bin/bash」。
この実行ファイルの事をインタプリタとか呼ぶ場合もありますけど、食わされたファイルを解釈する役目があるだけの
たんなる実行ファイルです。https://ja.wikipedia.org/wiki/シバン (Unix)
「#!」で検索してみるといろいろでてくると思います。

シェル(sh, csh, bash 等々、というかUNIXの標準的な作りのコマンドは)は、標準入力からコマンドを読み込んでそれを実行します。
「端末」からシェルをうごかしている場合は、キー入力が標準の入力元になります。
「端末」からbashなどをつかっている場合、標準入力・標準出力はキーボード・ディスプレイ・端末(tty)からの入出力になりますが、リダイレクトやパイプという機能を使うと、 入力元や出力先をファイルに変更できたり、他のプログラムの出力を自分の入力にしたり、自分の出力を他のプログラムの入力に切り替えるということができます。https://qiita.com/tag1216/items/7ce35b7c27d371165e56

これらの事を知っておくと、楽になれる場面が割とあります。

 

> ただ、その後どうやってそのシェルを実行するのかわからなかったので、
> 記述を丸ごとコピーして「端末」のコマンドラインにペーストしたら
> なんとそのスクリプトを無事実行してくれました。

この行為は、場合によっては、かなり危険な場合もあります。「rm -rf /」とかの文字列がまじってたり、Hackの為のバックドアを仕掛ける文字列がまざってたとしたら...。

Xpyoda Janus への返信

Re: おかげさまで無事接続できました! Re: 最近のmonoでJOG配布バイナリ OpenSim-0.9.0Devが動かない

- fuugetu flowerbird の投稿

 

XPyodaさん、シェルの起動方法を教えてくださってありがとうございました!

改めて別のリージョンで二つのうち1の方法で試したところできました。

そういえば、Linux環境でFirestormをインストールするときも

 ./install.sh

っていう魔法の呪文を使ってインストールしたことを思い出しました。

 

2のshコマンドだと実行属性を与えなくてよいのですね~ 

私の場合、こっちで覚えたほうが覚えやすいかもしれません。

 

ありがとうございました^^