宇宙主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

欧基零壹微头条IP归属甄别会员请立即修改密码
查看: 1156|回复: 12

shell文件存取命令求助

[复制链接]
发表于 2022-11-5 09:42:04 | 显示全部楼层 |阅读模式

要实现的功能比较简单,onoff.txt里面的值是1,运行一次onoffchange.sh,onoff.txt里面的值变成0,再运行一次,变成1

onoffchange.sh

#!/bin/bash
value=$(cat onoff.txt)
echo !$value > onoff.txt
if $value ==1
echo "it's on"
fi

上面估计漏洞很多,哪位大佬可以帮忙修正一下,万分感谢!
发表于 2022-11-5 13:04:25 | 显示全部楼层
我要大房子 发表于 2022-11-5 12:27
#!/bin/bash
[[ ! -f onoff.txt ]] && echo 0 >onoff.txt
value=$(cat onoff.txt)

这。。。
  1. root@thzhk:/tmp# cat x.sh
  2. [[ ! -f x ]] && echo 0 >x
  3. value=$(cat x)
  4. echo "0^$value"|bc >x
  5. root@thzhk:/tmp# ./x.sh ;cat x
  6. 1
  7. root@thzhk:/tmp# ./x.sh ;cat x
  8. 0
  9. root@thzhk:/tmp# ./x.sh ;cat x
  10. 1
  11. root@thzhk:/tmp# ./x.sh ;cat x
  12. 0
  13. root@thzhk:/tmp# ./x.sh ;cat x
  14. 1
  15. root@thzhk:/tmp# ./x.sh ;cat x
  16. 0
  17. root@thzhk:/tmp# ./x.sh ;cat x
  18. 1
  19. root@thzhk:/tmp# ./x.sh ;cat x
  20. 0
  21. root@thzhk:/tmp# ./x.sh ;cat x
  22. 1
  23. root@thzhk:/tmp# ./x.sh ;cat x
  24. 0
  25. root@thzhk:/tmp# ./x.sh ;cat x
  26. 1
  27. root@thzhk:/tmp# ./x.sh ;cat x
  28. 0
复制代码
发表于 2022-11-5 10:41:19 来自手机 | 显示全部楼层
把文件路径都写全了,
发表于 2022-11-5 11:34:20 | 显示全部楼层
这,,,,方式很多吧。。。。随便来一个试一试?
PS: 没验证过,楼主感兴趣就自己复制粘贴试一试,有问题的话就当作一个思路,没问题的话也可以按照喜欢自己改善。
  1. [[ ! -f x ]] && echo 0 >x
  2. value=$(cat x)
  3. echo "0^$value"|bc >x
复制代码
发表于 2022-11-5 11:46:30 来自手机 | 显示全部楼层
本帖最后由 zdszf 于 2022-11-5 11:48 编辑

if [[ “$(cat txt | grep -oE “0”)” == “0” ]]; then echo 1>txt;else echo 0>txt;fi
 楼主| 发表于 2022-11-5 12:27:38 | 显示全部楼层
hchen 发表于 2022-11-5 11:34
这,,,,方式很多吧。。。。随便来一个试一试?
PS: 没验证过,楼主感兴趣就自己复制粘贴试一试,有问题 ...

#!/bin/bash
[[ ! -f onoff.txt ]] && echo 0 >onoff.txt
value=$(cat onoff.txt)
echo "0^$value"|bc >onoff.txt

结果是:
(standard_in) 1: illegal character: ^M
(standard_in) 2: syntax error
 楼主| 发表于 2022-11-5 12:42:18 | 显示全部楼层
zdszf 发表于 2022-11-5 11:46
if [[ “$(cat txt | grep -oE “0”)” == “0” ]]; then echo 1>txt;else echo 0>txt;fi

#!/bin/bash
if [[ "$(cat onoff.txt | grep -oE "0")" == "0" ]]
        then echo 1>onoff.txt
        else echo 0>onoff.txt
        fi

/root/admin.sh: line 2: syntax error in conditional expression
'root/admin.sh: line 2: syntax error near `]]
'root/admin.sh: line 2: `if [[ "$(cat onoff.txt | grep -oE "0")" == "0" ]]
发表于 2022-11-5 13:09:10 | 显示全部楼层
请5K哥出手 @@ecs
发表于 2022-11-5 13:24:17 | 显示全部楼层
  1. #!/bin/bash

  2. FILE="test.txt"

  3. NUM=$(cat "$FILE")
  4. NUM=$(((NUM + 1) % 2))
  5. echo "$NUM" > "$FILE"
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|宇宙主机交流论坛

GMT+8, 2024-10-31 17:24 , Processed in 0.066930 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表