我有两个脚本,我想在登录我的个人资料时运行它们。
~/.scripts/startup/user-sensei-raw-startup.sh
:
ids=$(xinput list | awk '/SteelSeries Sensei Raw Gaming Mouse .*pointer/ {print $8}' | sed 's/id=\(.*\)/\1/')
if [ -z "$ids" ]; then
exit 0;
fi
read -a ids_array <<< $ids
echo fixing id ${ids_array[0]}
xinput set-prop ${ids_array[0]} 'Device Accel Profile' -1
xinput set-prop ${ids_array[0]} 'Device Accel Constant Deceleration' 2.5
xinput set-prop ${ids_array[0]} 'Device Accel Adaptive Deceleration' 1
xinput set-prop ${ids_array[0]} 'Device Accel Velocity Scaling' 1
echo fixing id ${ids_array[1]}
xinput set-prop ${ids_array[1]} 'Device Accel Profile' -1
xinput set-prop ${ids_array[1]} 'Device Accel Constant Deceleration' 1.5
xinput set-prop ${ids_array[1]} 'Device Accel Adaptive Deceleration' 1
xinput set-prop ${ids_array[1]} 'Device Accel Velocity Scaling' 1
unset ids
unset ids_array
~/.scripts/startup/root-sensei-raw-startup.sh
:
#!/bin/bash
sensei-raw-ctl --show
sensei-raw-ctl --polling 500
sensei-raw-ctl --cpi-on 450
sensei-raw-ctl --cpi-off 5670
要手动运行它们,我会在登录时运行以下命令:
bash ~/.scripts/startup/user-sensei-raw-startup.sh && sudo bash ~/.scripts/startup/root-sensei-raw-startup.sh
第一个脚本可以通过 运行,bash
但是我需要通过 运行另一个脚本sudo bash
。问题是我必须输入密码才能运行第二个脚本。
有什么办法可以自动执行此操作,以便我不必一直输入sudo
密码?我也不想sudo
以纯文本形式保存密码。
答案1
我认为最好的办法是使用 shc(Bash 脚本编译器)包装整个脚本。这样你就可以使用纯文本,就像echo password | sudo -S script.sh
在脚本中一样。我想有人可以反编译,但我们离这还很远,如果担心这一点,就不要存储你的 sudo 密码。
链接至 SHC。
shc github