アプリ版:「スタンプのみでお礼する」機能のリリースについて

初めて投稿します。よろしくお願いします。
RedHat7.0でShellScriptを作成しています。
初めて作るのでよくわかっていません。
下記スクリプトを実行すると、
./test.sh:aaa:command not found
とエラーになります。
原因がおわかりの方、アドバイスをいただけないでしょうか。
よろしくお願いいたします。

******test.shの内容*****************
#!/bin/bash

. /tmp/test.txt

para=$1
export para
echo $para
************************************

***test.txtの内容*******************
aaa
***********************************

********やりたい事*****************
変数paraにtest.txtに定義されている値を
代入して表示したい。
**********************************

権限はどちらのファイルも
chmod 777 test.sh
chmod 777 test.txt
に設定してあります。

回答よろしくお願いいたします。

A 回答 (1件)

> 変数paraにtest.txtに定義されている値を代入して表示したい。



こんな感じ。

read para < /tmp/test.txt


いろいろと勘違いをしているようなので、蛇足かもしれませんが幾つか。

> ./test.sh:aaa:command not found
> とエラーになります。

. は、それに続くファイルからコマンドを読み取って実行する特殊コマンド
だから、test.txt に書かれた aaa をコマンドとして実行しようとして、
「そんなコマンドはありまへん」と言ってるのですね。

> export para

para を環境変数として扱わないのであれば、不要です。

> 権限はどちらのファイルも
> chmod 777 test.sh
> chmod 777 test.txt

値を読み出すだけですから test.txt への実行権限付与は意味がありません。
また、. を本来の「コマンドを実行するため」に使っていたとしても、
実行権限はつける必要がありません。
    • good
    • 0
この回答へのお礼

a-kumaさん、回答ありがとうございます。
read para < /tmp/test.txt
で、出来ました!ありがとうございます。
何も訳が解らずにサンプルコードをそのまま書いていたんです・・。
a-kumaさんの補足、とてもわかりやすく、参考になりました。

他にもつまづいている箇所がありますので、
またあらためて質問させていただくと思いますが
その時はまた宜しくお願いいたします。

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

お礼日時:2001/08/06 14:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!