簡體   English   中英

為什么這一行會刪除所有內容而不是一行。 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 文件列在 pipe 行的第一部分。 然后使用sed function 刪除變量中指定編號的行並將結果寫回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的東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM