3

我想用 bash 编写启动脚本,以使 ubuntu 盒子对爷爷更友好。

脚本应该:

打开 chrome 等到 chrome 关闭 关闭计算机

到目前为止我有

#!/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

脚本以root身份运行的位置。

于 2012-05-07T21:08:29.977 回答
1

第 14 行应该是

if [ -z "$grep_resp" ]; then

它需要在引号中,因为字符串中有空格。

于 2012-05-07T21:08:31.223 回答