我需要删除cron文件的一行,但是当我使用此bash脚本代码时,它将删除cron文件中的所有内容,并且不会用新结果覆盖它。
[我选择要删除的行中的变量显示为数字,如下所示:
read $lineToRemove
crontab -l | sed "${lineToRemove}d" | crontab -
根据我的理解,如果他们输入数字2并按Enter键,我将读取用户输入。然后,crontab文件在管道的第一部分中列出。然后,sed
函数用于删除变量中指定编号的行,并将结果写回到cron文件。但是,当我这样做时,它会从cron文件中删除所有内容
read
的参数应排除$
,就像var=value
排除$
。您正在read
进入名为$lineToRemove
的变量,而不是lineToRemove
。
$ read x
hi
$ echo $x
hi
$ read $x
hi
$ echo $hi
hi
[当我为read $x
时,存储该值的变量为$x
,而不是x
,例如hi
。因此$hi
随后指的是读入$x
的事物。