页次: 1
我自己写了一个脚本, 就是每次登陆后提示一下
下面脚本我自己直接调用是没有问题可以正常运行的, 但是在 `.zshrc` 或者 `profile` 中添加执行脚本的命令后, 登陆后并不会正常运行
`profile` 下根本不执行, `.zshrc` 中接收不了输入, 如果想实现类似效果应该怎么做
脚本内容
```
#!/bin/bash
FLAG_WAIT="1"
FLAG_END="0"
STATUS_FILE="$HOME/.sys_update"
SYSTEMD_SCRIPT="/etc/systemd/system"
#初始化记录变量的文件, 并且在 systemd 添加定时任务, 每日更新
if [[ ! -f $STATUS_FILE ]]; then
echo $FLAG_WAIT > $STATUS_FILE
sudo mkdir -p $SYSTEMD_SCRIPT
sudo tee "$SYSTEMD_SCRIPT/sys_update.service" > /dev/null << EOF
[Unit]
Description=Reset system update status
[Service]
Type=oneshot
ExecStart=/bin/bash -c "echo $FLAG_WAIT > $STATUS_FILE"
EOF
sudo tee "$SYSTEMD_SCRIPT/sys_update.timer" > /dev/null << EOF
[Unit]
Description=Reset system update status
[Timer]
OnCalendar=daily
Persistent=true
[Install]
WantedBy=timers.target
EOF
sudo systemctl enable --now "$SYSTEMD_SCRIPT/sys_update.timer"
fi
STATUS=$(cat $STATUS_FILE)
#检查今天更新过没有, 没更新就询问
if [[ $STATUS -eq $FLAG_WAIT ]]; then
echo "是否更新系统(y/N)"
read -t 5 -n 1 -s ANSWER
if [[ $ANSWER =~ ^[yY]$ ]]; then
paru
echo $FLAG_END > $STATUS_FILE
fi
fi
```
离线
.bash_profile 是在登陆的时候执行的
.bashrc 是在打开shell的时候执行的
zsh没啥区别
建议在关机前更新而不是登陆后更新
一些软件更新后不重启可能会用不了
好耶
离线
破案了, .p10k.zsh 导致无法输入
离线
页次: 1