- ベストアンサー
Knoppixでシェルスクリプトの作り方
KnoppixというLinux種の一つを使っています。 このOSで、Windowsでいうバッチファイルを作りたいです。 うまく行きません。 実行属性を付ける、という情報を得ました。そして実行属性を付けるコマンドも実行しましたが、解決しませんでした。 ご指導ください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
前の方に追補すると Unixでは拡張子はただのファイル名の一部でしかありません。 x.sh というファイルを実行するなら、 ファイル名としては x.sh と指定しなければなりません。 Windowsのように、 x.exe を x だけで実行できたりはしません。 x だけで実行したいなら、ファイル名を x にする必要があります。 実際、cat コマンドは、 cat と言う実行ファイルであることが多いです。
その他の回答 (2)
- notnot
- ベストアンサー率47% (4900/10359)
>$./x.sh >abc >成功しました。しかし相変わらず >$x.sh >も >$x >も失敗します。 > コマンドが見つかりません >と表示されます。 それで正常です。 >カレントディレクトリにあるのだから、見つからない筈がないと思います。 コマンド名だけを入れた場合、カレントディレクトリは探しません。 コマンド名だけの場合にカレントディレクトリにあるファイルを実行するのは危険(理由後述)なので、探さないようになってます。 Windowsでカレントディレクトリを探すのは、そもそもディレクトリというものが無かった(つまりドライブ直下しか無かった)MS-DOSver1時代(1981年)との互換性だと思います。 >何か設定が必要なのでしょうか。ちなみにWindowsにあるpathコマンドは無いようです。 echo $PATH とすると、: で区切られたディレクトリが表示されると思いますが、それがPATHです。 PATHに . (カレントディレクトリ) を含めると x.sh で実行できるようになりますが、 その際の危険性については最近別のところで書いたので、参照してください。 https://teratail.com/questions/3799 の otn の回答。 Unix/Linuxユーザーは、カレントディレクトリにあるコマンドを実行するときは、先頭に ./ を付けます。そういう習慣を付けてください。 頻繁に実行するなら、 コマンドファイルを $HOME/bin ディレクトリに置きます。
- Tacosan
- ベストアンサー率23% (3656/15482)
・どのような操作をしてそのスクリプトを作ったのですか? ・どのようなスクリプトを作ったのですか? ・「解決しない」とはどのようなことですか? エラーが出たというならそのエラーメッセージも含めて「具体的に」書いてください.
お礼
返答有り難うございます (1) 最初に、このOS付属のleafpadというテキストエディタを起動します。 そして #!/bin/sh echo abc と入力してx.sh名で保存します。 (2) $cat x.sh とすると、その内容が表示されます。 (3) 実行しようと $x.sh とすると、 コマンドが見つかりません と表示されます。 (4) そこで $./x.sh とすると、今度は 許可がありません と表示されます。 (5) $sh x.sh とすると、期待通りに"abc"が表示されます。 $bash x.sh も同様です。 (6) ネットを参照して $ ls -l -d x.sh -rw-r--r-- 1 poo poo 19 12月 5 17:17 x.sh となります。 xがありません。つまり実行許可がありません。 (7) xを付けるために、 $ chmod +x x.sh $ ls -l -d x.sh -rwxr-xr-x 1 poo poo 19 12月 5 17:17 x.sh 実行許可属性が付いたようです。 (8) $./x.sh abc 成功しました。しかし相変わらず $x.sh も $x も失敗します。 コマンドが見つかりません と表示されます。 カレントディレクトリにあるのだから、見つからない筈がないと思います。 何か設定が必要なのでしょうか。ちなみにWindowsにあるpathコマンドは無いようです。
お礼
返答有り難うございます よくわかりました とても基本的な事でした。 以前、同様の質問をした時に、初心者を揶揄するような返答をもらってしまったので、今回も止めておこうと思ったのですが、貴方のような親切なひとがいて嬉しいです。 今後もおねがいします