「夫を成功」へ導く妻の秘訣 座談会

シェルスクリプトの記述について質問させて頂きます。

ラズパイを最近始めたばかりの初心者です。
シェルスクリプトで以下のような命令文を記述すると、

 sudo ./test 文字列  ・・・①

『test』プログラムが実行され、文字列が出力されます。
上記の応用として、test以下に記述する文字列がテキストファイルに保存されている場合に、
どのようなソースを記述すれば、①と同様の実行結果を得られますか?

 TEST=`cat test.txt`
 sudo ./test "$TEST"

上記のように記述しましたが、文字列は出力されませんでした。

以上、よろしくお願い致します。

A 回答 (1件)

○「文字列は出力されませんでした」


とは具体的に、どんな内容ですか?
 まったく何も出力されなかったのか、期待とは違う文字列が出力されたのか?

○該当箇所を
sudo ./test 文字列
としたら期待通りに動作しますか?

TEST=文字列
sudo ./test "$TEST"
ではどうなりますか?

○ シェルスクリプトにデバッグ方法はいろいろとありますが、
スクリプト内で set -vx を実行する(あるいは sh -vx スクリプト 等と -vx オプションを付ける)
と実行状況が出力されるようになります。
-v が読み込んだまま、 -x が変数展開が終った後の状態の出力です。

これを使って、
・ちゃんと実行しているのか?途中で止まってたりしないか?

TEST=`cat test.txt`
sudo ./test "$TEST"

TEST=文字列
sudo ./test 文字列
に展開されているかどうか

を確認しましょう。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
test.txtファイルのパーミッション設定が『実行不可』となっていました。
ですので、『実行可』に設定して、無事正常に動作しました。

お礼日時:2020/05/22 14:06

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング