0

私はシェルスクリプトを初めて使用します。コマンド ライン引数として指定された時間がシステム時間と等しい場合、スクリプトはコマンドを起動する必要があります。

私は非常に基本的なことから始めましたが、ここでしか立ち往生しています:-(

#!/bin/sh

now=$(date +%k%M)
cur="055" # should be given as command line arg
if ($now == $cur)
then
    echo "Fire command here"
else
    echo "poll for time"
fi

スクリプトを実行すると:

./script.sh: line 5: 055: command not found

poll for time

助けてくれてありがとう。

4

5 に答える 5

3

上記は、次の代わりに、単なる小さな構文エラーだと思います。

if ($now == $cur)

あなたはこれをしたいかもしれません:

if [ $now -eq $cur ]  #very basic comparison here, you may want to have a
                      #look at the bash comparisons

更新 変数を次のように変更できますか?

$cur=$(date +%H%M)

また、入力が提供されない場合は、前のスペースを削除する必要があります$now

now=$(echo $now | sed 's/\s//g') #this removes the spaces in the input
于 2013-09-02T14:07:46.850 に答える
0
begin="`date '+%s'`"
final=... #should be converted to seconds since epoch...
sleep $((final - begin))
exec_your_command
于 2013-09-02T14:21:14.003 に答える