解決済みの質問
初めて投稿します。よろしくお願いします。
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
に設定してあります。
回答よろしくお願いいたします。
投稿日時 - 2001-08-06 12:13:37
> 変数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 への実行権限付与は意味がありません。
また、. を本来の「コマンドを実行するため」に使っていたとしても、
実行権限はつける必要がありません。
投稿日時 - 2001-08-06 12:55:30
お礼
a-kumaさん、回答ありがとうございます。
read para < /tmp/test.txt
で、出来ました!ありがとうございます。
何も訳が解らずにサンプルコードをそのまま書いていたんです・・。
a-kumaさんの補足、とてもわかりやすく、参考になりました。
他にもつまづいている箇所がありますので、
またあらためて質問させていただくと思いますが
その時はまた宜しくお願いいたします。
ありがとうございました。
投稿日時 - 2001-08-06 14:22:38
0人が「このQ&Aが役に立った」と投票しています
OKWaveのオススメ
おすすめリンク