linux - 如何在bash中保留变量的先前值
问题描述
我做了一个小程序来管理笔记本电脑的屏幕亮度。问题是当我覆盖 BRIGHTNESSCTRL 变量时,好吧,我覆盖它并且之前的值被删除,所以当我使用程序时,它总是将亮度设置为 20000,感谢任何帮助。顺便说一句,这是我的程序。
#!/bin/bash
echo 'Actual brightness:' ; cat /sys/class/backlight/intel_backlight/actual_brightness
cat /sys/class/backlight/intel_backlight/actual_brightness > BRIGHTNESSCTRL
let "BRIGHTNESSCTRL=BRIGHTNESSCTRL+10000"
if [[ $BRIGHTNESSCTRL -gt 96000 ]] ; then BRIGHTNESSCTRL=96000 ; fi && echo 'Success' || echo 'Failure'
echo $BRIGHTNESSCTRL
sudo echo $BRIGHTNESSCTRL > /sys/class/backlight/intel_backlight/brightness ; echo $BRIGHTNESSCTRL
解决方案
您似乎将文件与 shell 变量混淆了。第一个命令将原始值写入文件,但您永远不会读取该文件。
你的问题很不清楚,但我想你正在寻找类似的东西
#!/bin/bash
brightness=$(cat /sys/class/backlight/intel_backlight/actual_brightness)
echo "Actual brightness: $brightness"
brightness=$((brightness+10000))
if [[ $brightness -gt 96000 ]] ; then
brightness=96000
fi
echo $brightness | sudo tee /sys/class/backlight/intel_backlight/brightness
目前还不清楚你希望echo "Success"
或何时echo "Failure"
发生,所以我把它们拿出来了。请注意,它sudo
仅提供对您运行的单个命令(在您的情况下是 )的特权访问,而echo
不是对 shell 执行的任何重定向。您应该更喜欢私有变量的小写字母。
推荐阅读
- google-mlkit - Google ML Kit 指标上传详细信息/通信协议
- c++ - 将数字均匀分配到具有相等值的 n 个元素的数组中
- nginx - 如何在 NGINX 中添加规则以从 url 中删除日期部分
- google-app-engine - 将 Google App Engine 服务映射到自定义域路径
- javascript - 如果不存在,如何在Javascript中分组并添加空对象
- python-3.x - 如何使用 python mitm 捕获请求并通过烧瓶请求重放
- java - 单击 EditText 时键盘不显示
- batch-file - 脚本新手
- ios - Swift UITableViewCell 阴影没有出现
- python - 下载包含浮点字段的 S3 文件夹