e日記風 独り言

#気まぐれ & 気まま & 天邪鬼な老いぼれ技術屋の日々の記録のうち、主に Perl・CGI・HTMLなど Web技術に関連した記事です。
右端上端の同一カテゴリージャンプボタンで同じカテゴリーの他の記事を順番にご覧いただけます。
Access Counter:  総アクセス数

楽 天 の 商 品

-2334- Linuxのシェルスクリプト:「=」の両側に半角スペースはNG
= 今日は画像なし m(_ _)m =
標題の件で悩んだのでメモ
Puppyにデフォルトで実装されているhiawathaというかなりマイナーなサーバーアプリ上で phpをイジっているが、設定を治しては トライアンドエラーで頻繁に再起動している。再起動の標準的な手順では端末上で コマンドを 3つほど入力する必要があるんだが、結構面倒&忘れる。
そこでシェルスクリプトにしてアイコンで実行しようとしたら躓いた。

#!/bin/bash
PID = $(pgrep hiawatha)
if [ -n "$PID" ]; then
  killall hiawatha
fi
systemctl restart php7.4-fpm.service
/usr/sbin/hiawatha

とやったら、「PID: コマンドが見つかりません」というエラーになってしまった。
端末(Urvxt)から、

PID=$(pgrep hiawatha)
echo "$PID"

とやるとエラーにならずに PIDが表示される。
いつも頼りの Google・Bing-chat先生たちもあまり釈然とした答えをくれない。
最後の手段で度々お世話になっている日本語フォーラムに質問しようとして、質問文を見直しているうちに、端末では「=」の両側の半角スペースを入れていないことに気づいた。まさか!? とは思ったが念のため端末でも半角スペースを入れて実行すると同じエラーが!!! そこで早速

#!/bin/bash
PID=$(pgrep hiawatha)
if [ -n "$PID" ]; then   # PID が返ってくれば hiawatha は実行されている
  killall hiawatha    # kill -15 $PID でもOK
fi
systemctl restart php7.4-fpm.service
/usr/sbin/hiawatha    # hiawatha 再起動

としてみたらスンナリ通った。
変数への代入記号「=」の両側には半角スペースを入れて見やすくするというのが常識だと思っていたら、そこが落とし穴だったなんて!
原因が分かってから検索したらこんなページが! 情けないほどの知識不足!
2024/03/24


このページ(pdiary_2334.html)にコメント/質問をどうぞ
タイトル(30文字以内)
コメント
お名前(ID:10文字以内)
URL(HP or ブログをお持ちの方)
パスワード*
タイトル・コメント・ID は必須です
このページ(pdiary_2334.html)への今までのコメント/質問
このページにはまだ表示できる投稿がありません。

Back to Page top