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