我需要在bash脚本的中间以root身份执行一行,我有以下代码:
#!/bin/bash
...
EOF
if [[ $x = true ]] || [[ $y= "On" ]]; then
echo -e "0 8 * * * root " >> /etc/crontab
我需要具有密码的root用户在crontab中编写的回显。 当前它不写,因为它是由ubuntu用户执行的。 谢谢。
答案 0 :(得分:3)
我建议这样做:
import { Subject } from 'rxjs';
class CustomEventEmitter extends Subject<any>{
constructor() {
super();
}
emit(value: any) {
super.next(value);
}
}
export class PubSubService {
Stream: CustomEventEmitter;
constructor() {
this.Stream = new CustomEventEmitter;
}
}
当脚本遇到echo -e "0 8 * * * root " | sudo tee -a /etc/crontab
的{{1}}时,它将询问您的密码,或者,如果您刚刚刚为sudo给出了密码,它将仅执行任务。 (当然,如果该用户不需要为sudo
输入密码,则永远不会要求输入密码。)
使用tee
代替Shell重定向可以解决以下问题:当前shell会执行重定向,因此在命令中添加sudo
不会影响重定向(然后由于丢失而失败)权限)。