コードはlorem.sh
ファイル内のcronを介して画面コマンドを実行します。
クローンコードは次のとおりです。* * * * * cd /home/z; ./lorem.sh
中lorem.sh
:
screen -S screenname -X stuff $'\033[B'
sleep 1 && screen -S screenname -X stuff 2
sleep 1 && screen -S screenname -X stuff "lorem ipsum dolor"
sleep 1 && screen -S screenname -X stuff $'\n'
上記のコードlorem.sh
:最初の行は「下矢印」、4行目は「Enter」です。
cronを実行すると、lorem.sh
2行目と3行目だけが機能します。
lorem.sh
上記は、 を入力して端末で実行すると正常に動作します./lorem.sh
が、cronでは動作しません。
答え1
ほとんどのバージョンのcron
runコマンドはデフォルトで使用され、コマンドが実行されると/bin/sh
シェルスクリプトを実行するためにも使用されます(#!
特定のシェルを使用するように強制する行はありません)。/bin/sh
一部のシステムでは/bin/sh
そうですdash
。わかりません。ANSI-Cリファレンスルールbash
他のシェルと組み合わせて使用してください。したがって、$'\n'
文字列はおそらく3文字の文字列として解釈されます$\n
。
ほとんどのバージョンでは、cron
コマンドを実行するシェルを指定できます。bash
crontabを編集して行を追加して使用できます
SHELL=/bin/bash
ジョブをスケジュールする行の前に表示されます。
lorem.sh
または、いつでも追加して使用できます。bash
#!/bin/bash
最初の行に。