cron(cron run .sh)を介して変数とティックを使用して画面コマンドを実行します。

cron(cron run .sh)を介して変数とティックを使用して画面コマンドを実行します。

コードは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.sh2行目と3行目だけが機能します。

lorem.sh上記は、 を入力して端末で実行すると正常に動作します./lorem.shが、cronでは動作しません。

答え1

ほとんどのバージョンのcronrunコマンドはデフォルトで使用され、コマンドが実行されると/bin/shシェルスクリプトを実行するためにも使用されます(#!特定のシェルを使用するように強制する行はありません)。/bin/sh

一部のシステムでは/bin/shそうですdash。わかりません。ANSI-Cリファレンスルールbash他のシェルと組み合わせて使用​​してください。したがって、$'\n'文字列はおそらく3文字の文字列として解釈されます$\n

ほとんどのバージョンでは、cronコマンドを実行するシェルを指定できます。bashcrontabを編集して行を追加して使用できます

SHELL=/bin/bash

ジョブをスケジュールする行の前に表示されます。

lorem.shまたは、いつでも追加して使用できます。bash

#!/bin/bash

最初の行に。

関連情報