3

Ubuntuボックスをよりおじいちゃんにやさしいものにするために、bashでスタートアップスクリプトを書きたいと思います。

スクリプトは次のようにする必要があります。

クロームを開くクロームが閉じるまで待つコンピュータの電源を切る

これまでのところ私は

#!/bin/bash
if [ -z "$1" ]; then
    address="http:\\www.google.co.uk"
else
    address=$1
fi

echo starting the internet
google-chrome $address

while [ 1=1 ];
do
   grep_resp=$(ps aux | grep chrome)
   if [ -z "$grep_resp" ]; then
       echo turning computer off 
   else
       echo chrome still running
   fi
   sleep 5
done 

しかし、「chrome」のgrepはプロセスリストにあります

何か援助はありますか?

4

3 に答える 3

3

このエラーが発生$grep_respしているのは...

if [ -z $grep_resp ]; then

...おそらく空白を含む文字列に展開されます。引用符で囲んだ場合:

  if [ -z "$grep_resp" ]; then

それはあなたが期待することをします。しかし、私はそのすべてが不要かもしれないと思います。Chrome は、実行時に自動的にバックグラウンドなどを実行しないため、次の操作を実行できるはずです。

google-chrome $address
echo turning computer off
...
于 2012-05-07T21:08:41.567 に答える
1

どうですか:

#!/bin/bash

user=gramps

sudo -u "$user" -- chrome "$1"; shutdown -P now

スクリプトはルートとして実行されます。

于 2012-05-07T21:08:29.977 に答える
1

14行目は

if [ -z "$grep_resp" ]; then

文字列にスペースが含まれているため、引用符で囲む必要があります。

于 2012-05-07T21:08:31.223 に答える