juewuy / ShellCrash

Run sing-box/mihomo as client in shell
8.73k stars 1.46k forks source link

[Bug] Ubuntu 22.04.2 LTS 版本:1.7.10e 读取剩余空间报错。 #461

Closed RiftRays closed 1 year ago

RiftRays commented 1 year ago

Verify steps

安装在/etc/clash也一样。


当前目录(/usr/share/clash)剩余空间:
/usr/share/clash/getdate.sh: 第 1277 行: [: : 需要整数表达式
-----------------------------------------------
 1 更新管理脚本         1.7.10e > 1.7.10e测试版
 2 切换clash核心        v1.15.0 > v1.15.0
 3 更新GeoIP/CN-IP      20230729 > 20230729
 4 安装本地Dashboard面板
 5 安装/更新本地根证书文件
 6 查看PAC自动代理配置
juewuy commented 1 year ago

未复现 请手动执行: df -h $clashdir |awk '{ for(i=1;i<=NF;i++){ if(NR==1){ arr[i]=$i; }else{ arr[i]=arr[i]" "$i; } } } END{ for(i=1;i<=NF;i++){ print arr[i]; } }' |grep Ava |awk '{print $2}'

RiftRays commented 1 year ago

@juewuy 执行这行命令并未得到任何结果。 image

juewuy commented 1 year ago

@WilsonVincent df -h $clashdir呢?

RiftRays commented 1 year ago

@juewuy

root@vincent:~# df -h $clashdir呢?
df: 呢?: 没有那个文件或目录
root@vincent:~# 
juewuy commented 1 year ago

@WilsonVincent 所以为什么你安装时没写入环境变量?

RiftRays commented 1 year ago

@juewuy 我是使用的是指导文档中的一键安装。而且是root权限。没有修改其他的东西。这是需要写入什么权限?或者需要执行什么补全环境?

juewuy commented 1 year ago

@WilsonVincent 参考https://github.com/juewuy/ShellClash/blob/master/README_CN.md 覆盖安装即可

RiftRays commented 1 year ago

image

@juewuy 我直接卸载重装都好像不行。

juewuy commented 1 year ago

@WilsonVincent 不对啊,你为什么要复制“呢?”

RiftRays commented 1 year ago

@juewuy 大意了,不好意思。刚刚回看指令的时候发现的。 df -h $clashdir是可以获取到的。

image

root@vincent:~# df -h $clashdir
文件系统        大小  已用  可用 已用% 挂载点
tmpfs           375M   36M  339M   10% /run
/dev/sda2       117G   28G   83G   25% /
tmpfs           1.9G     0  1.9G    0% /dev/shm
tmpfs           5.0M  4.0K  5.0M    1% /run/lock
/dev/sda1       511M  6.1M  505M    2% /boot/efi
/dev/sdb5       458G  343G   92G   79% /mnt/Vincent
overlay         117G   28G   83G   25% /var/lib/docker/overlay2/15f107120025455f1e8aa696216f14262bcd8b291dc1b2b150f7d659ffae6658/merged
overlay         117G   28G   83G   25% /var/lib/docker/overlay2/3bce4c33a5087c8eeec507b488648e4445001a5fec844398b56860b66d0d50a7/merged
overlay         117G   28G   83G   25% /var/lib/docker/overlay2/95bfcf6ae21484fa81be65cbd9c76e3fa3840535c19c63e86a226ae6176924bc/merged
overlay         117G   28G   83G   25% /var/lib/docker/overlay2/05b0c15f12906fe22728fffdae9d5d806b9d1c884a8479efe860bb99aa970fd8/merged
overlay         117G   28G   83G   25% /var/lib/docker/overlay2/5a581b2269abbd62c4a2c3235bbdf10f95f3073c96b8297297d3552f6f96356a/merged
overlay         117G   28G   83G   25% /var/lib/docker/overlay2/5ef7020ef66e5f675056e5385466d2786b60ca19155fbdb2f70bec0981be5d3f/merged
overlay         117G   28G   83G   25% /var/lib/docker/overlay2/2c08b4490c8f60f397406c127787e3b83e09928a3d7e414ecf3ddc2b3c591bee/merged
tmpfs           375M  108K  375M    1% /run/user/1000
tmpfs           375M   60K  375M    1% /run/user/0
overlay         117G   28G   83G   25% /var/lib/docker/overlay2/83a81a4a67d30ef9cac33ad7e53f6f2c80fa0d772ba214ee29ad71bbce171dac/merged
root@vincent:~# df -h $clashdir |awk '{ for(i=1;i<=NF;i++){ if(NR==1){ arr[i]=$i; }else{ arr[i]=arr[i]" "$i; } } } END{ for(i=1;i<=NF;i++){ print arr[i]; } }' |grep Ava |awk '{print $2}'
root@vincent:~# 
juewuy commented 1 year ago

@WilsonVincent 说明环境变量还是没有配置成功,你可以手动添加到/etc/profile

RiftRays commented 1 year ago

@juewuy 将什么文件添加到/etc/profile?

juewuy commented 1 year ago

@WilsonVincent 参考https://github.com/juewuy/ShellClash/blob/master/scripts/init.sh#L190-L194

RiftRays commented 1 year ago

@juewuy 变量应该没有问题吧。我逐步拆解得到以下输出结果:

root@vincent:~# df -h $clashdir
文件系统        大小  已用  可用 已用% 挂载点
/dev/sda2       117G   28G   83G   25% /
root@vincent:~# df -h $clashdir | awk '{ for(i=1;i<=NF;i++){ if(NR==1){ arr[i]=$i; }else{ arr[i]=arr[i]" "$i; } } } END{ for(i=1;i<=NF;i++){ print arr[i]; } }'
文件系统 /dev/sda2
大小 117G
已用 28G
可用 83G
已用% 25%
挂载点 /
root@vincent:~# df -h $clashdir | awk '/Ava/ {print $2}'

无结果

df -h $clashdir | awk '/Ava/ {print $2}'

根据输出结果对比:如果系统是英文的。。则正常。如果系统是中文的则异常。

以下是云服务器中的输出对比结果

root@X:~# df -h $clashdir | awk '/Ava/ {print $2}'
Size
root@X:~# df -h $clashdir | awk '/Available/ {print $4}'
root@X:~# df -h $clashdir | awk '{ for(i=1;i<=NF;i++){ if(NR==1){ arr[i]=$i; }else{ arr[i]=arr[i]" "$i; } } } END{ for(i=1;i<=NF;i++){ print arr[i]; } }'
Filesystem /dev/vda3
Size 40G
Used 7.5G
Avail 30G
Use% 21%
Mounted /
root@X:~# df -h $clashdir
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda3        40G  7.5G   30G  21% /
RiftRays commented 1 year ago

@juewuy

root@vincent:~# df -h $clashdir | awk '/\/dev\/sda2/ {print $4}'
83G
df -h $clashdir | awk '/可用/ {print $4}'
可用
juewuy commented 1 year ago

@WilsonVincent 什么神仙版本,还显示中文🙈

RiftRays commented 1 year ago

@juewuy 别骂了别骂了~

df -h . | awk 'NR==2 {print $4}'

可以尝试一下这个? 两个环境获取当前文件夹所在的磁盘剩余容量没有问题。

juewuy commented 1 year ago

@WilsonVincent 不用怀疑,这个我用过很多设备都不行

RiftRays commented 1 year ago

@juewuy 那我这个问题应该如何解决呢?环境变量应该是没问题的。

juewuy commented 1 year ago

@WilsonVincent 后续我会尝试修复

RiftRays commented 1 year ago

@juewuy 好的。谢谢。🤣特色中文版~

RiftRays commented 1 year ago

@juewuy g版本成功获取,谢谢大佬的技术支持。