为什么这一行删除所有内容而不是一行。 crontab-Bash-sed
why does this line remove everything instead of one line. Crontab-Bash-Sed
我需要删除 cron 文件的一行,但是当我使用这个 bash 脚本代码时,它会删除 cron 文件中的所有内容,并且不会用新结果覆盖它。
我选择用一个变量删除哪一行,该变量被读取为如下所示的数字:
read $lineToRemove
crontab -l | sed "${lineToRemove}d" | crontab -
根据我的理解,如果用户输入数字 2 并按回车键,我会读取用户输入。然后 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
的东西。
我需要删除 cron 文件的一行,但是当我使用这个 bash 脚本代码时,它会删除 cron 文件中的所有内容,并且不会用新结果覆盖它。
我选择用一个变量删除哪一行,该变量被读取为如下所示的数字:
read $lineToRemove
crontab -l | sed "${lineToRemove}d" | crontab -
根据我的理解,如果用户输入数字 2 并按回车键,我会读取用户输入。然后 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
的东西。