V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  james122333  ›  全部回复第 13 页 / 共 46 页
回复总数  916
1 ... 9  10  11  12  13  14  15  16  17  18 ... 46  
这大概要润才有比较多缺 而且冷门技术没什么不好 冷门意味着你自行作主的东西变多了 如果你也很受不了现有乱七八糟的一堆
@moshan959

这你就太小看 shell 了 程序本来就多半取决于你想让它做什么. 而不是没用到觉得没用处 shell 都可以写编辑器 如以下
https://github.com/aeknt/ebashs
如果是认真的 自己研究 因为网上教程都是八古文
包含 chatgpt 写的都是 不美观写的又不好
280 天前
回复了 kachu673 创建的主题 Java Spring 开发,流程冗余
自己写不然就换
280 天前
回复了 bluecube13 创建的主题 程序员 SpringBoot 如何优雅的实现动态更新配置?
这么做的好处是本机都可以检查
手刻党才是王道
280 天前
回复了 bluecube13 创建的主题 程序员 SpringBoot 如何优雅的实现动态更新配置?
不要用 spring 自己写 整天 api 呼叫来呼叫去服务太多看起来有点傻
最简单就是挂载一个网路硬盘 侦测档案变化读入即可
可以用 Java watchservice
281 天前
回复了 leverestfish 创建的主题 Linux Linux 如何优雅的安装和使用 tar.gz 软件
@msg7086

我上面已经说了 多了包讯息(含包名 依赖 说明 协议...)和档案清单以及安装事前后脚本
这部分搞好其实就是自己写了包管理
档案清单其实不是很必要因为解压就可以列出来了
这太王八了 差不多要弃用了
283 天前
回复了 leverestfish 创建的主题 Linux Linux 如何优雅的安装和使用 tar.gz 软件
打错 是 7z l
283 天前
回复了 leverestfish 创建的主题 Linux Linux 如何优雅的安装和使用 tar.gz 软件
@v2eb

tar.gz 与 deb rpm 没有本质差异 都是打包加压缩
你用 7zip 列出就知道
7z -l test.deb
7z -l test.rpm
deb 会显示本来就是 xz 压缩 里头有个 tar
rpm 会显示里头有个 cpio.zstd 档 cpio 打包 zstd 压缩
tar vs cpio 也是一种战争 通常只是差在有无包管理需要的说明与档案清单和安装事后脚版本
尤其维护某专案 webdav 我都快累死了
我一开始都是只用两个 method
resource 区分 后来知道 restful 也很少用 restful
基本没不同 如果 webserver 没问题
webdav 我不喜欢这东西 新增 method 可以 但 xml 格式不能忍
@ytmsdy

这个大概是因为 1024 以下要 root 权限 webserver 如果有问题会悲据 可能会转发或不用了
287 天前
回复了 Comyn 创建的主题 Java 有没有动态切换 jdk 版本的工具
@random1221

然后不只 java 很多东西都可以这样搞 两个档是可以合并 但脚本会杂一点 我看过 jenv 複杂很多的东西 不够轻量
287 天前
回复了 Comyn 创建的主题 Java 有没有动态切换 jdk 版本的工具
@random1221

意思是不用使用複杂依赖多或非原生的方式就可以实现
以上写的脚本也不用写入.bash_profile
287 天前
回复了 Comyn 创建的主题 Java 有没有动态切换 jdk 版本的工具
以上可以捨弃肥大的工具
287 天前
回复了 Comyn 创建的主题 Java 有没有动态切换 jdk 版本的工具
倒数 25 行 2 改 l
287 天前
回复了 Comyn 创建的主题 Java 有没有动态切换 jdk 版本的工具
/usr/bin/jdkrun

#!/usr/bin/env bash

function err {
echo "$@" >&2
}

function help {
err "$0 -a(add) [JAVA_HOME]/-r(remove) [JAVA_HOME]/-l(list)/-d [JAVA_HOME] [bash arg...]"
}

function parse_config {
if [[ ! -f "$jdk_versions_file" || ! -r "$jdk_versions_file" ]] ; then
rm -Rf "$jdk_versions_file"
: > "$jdk_versions_file"
else
local l
while read -r l
do
jdks[${#jdks[@]}]="$l"
done < "$jdk_versions_file"
fi
}

function list_versions {
local i=-1
while let "++i < ${#jdks[@]}"
do
echo "${jdks[i]}"
done
}

function check_added_version {
local i=-1 v="$1"
v="${v## }"
v="${v%% }"
if [[ ! -z "$v" ]] ; then
while let "++i < ${#jdks[@]}"
do
[[ "${jdks[i]%\/}" == "${v%\/}" ]] && return 0
done
else
return 0
fi
return 1
}

function delete_version {
local i=-1
while let "++i < ${#jdks[@]}"
do
[[ "${jdks[i]%\/}" != "${1%\/}" ]] && echo "${jdks[i]%\/}"
done > "${jdk_versions_file}"
return 1
}

function main {
local jdk_versions_file="$HOME/.jdk_versions" jdks=()
parse_config
if [[ "$1" == -d ]] ; then
shift
case "$1" in
""|-*)
local i IFS=$'\n'
select i in ${jdks[@]}
do
exec jdksh -d "$i" "$@"
done
unset IFS
;;
*)
if check_added_version "$1" ; then
local d="$1"
shift
exec jdksh -d "$d" "$@"
else
err "$0: no such jdk version!"
return 1
fi
;;
esac
return 1
fi
case "$#" in
2)
case "$1" in
-a)
check_added_version "$2" || echo "${2%\/}" >> "${jdk_versions_file}"
;;
-r)
delete_version "$2"
;;
*)
help
;;
esac
;;
1)
case "$1" in
-a)
local l
read -p "Please input JAVA_HOME directory: " -r l
check_added_version "$l" || echo "${2%\/}" >> "${jdk_versions_file}"
;;
-r)
local i IFS=$'\n'
select i in ${jdks[@]}
do
delete_version "$i"
break
done
;;
-l)
list_versions
;;
*)
help
;;
esac
;;
*)
help
;;
esac
}

main "$@"
287 天前
回复了 Comyn 创建的主题 Java 有没有动态切换 jdk 版本的工具
local JAVA_HOME 前改成 local JAVA_HOME PATH 更好
287 天前
回复了 Comyn 创建的主题 Java 有没有动态切换 jdk 版本的工具
没有 bash 选项就是纯开终端
1 ... 9  10  11  12  13  14  15  16  17  18 ... 46  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1074 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 23ms · UTC 18:06 · PVG 02:06 · LAX 11:06 · JFK 14:06
Developed with CodeLauncher
♥ Do have faith in what you're doing.