鱼壳中的字符串操作
我希望编写一个 Fish shell 脚本来自动将 JAVA_HOME 初始化为当前配置的 java-alternative。
在 bash 中,它看起来像这样(对不起,丑陋的双目录名)
j=`update-alternatives --query javac | grep Value:`
JAVA_HOME=`dirname ${j#Value:}`
JAVA_HOME=`dirname $JAVA_HOME`
export JAVA_HOME
鱼呢?
set j (update-alternatives --query javac | grep Value:)
set JAVA_HOME (dirname ${j#Value:}) <-- this won't work!!
set JAVA_HOME (dirname $JAVA_HOME)
set --export JAVA_HOME
i wish to write a fish shell script to automatically initialize JAVA_HOME to current configured java-alternative.
In bash it would look like this (sorry for the ugly double dirname)
j=`update-alternatives --query javac | grep Value:`
JAVA_HOME=`dirname ${j#Value:}`
JAVA_HOME=`dirname $JAVA_HOME`
export JAVA_HOME
what about fish?
set j (update-alternatives --query javac | grep Value:)
set JAVA_HOME (dirname ${j#Value:}) <-- this won't work!!
set JAVA_HOME (dirname $JAVA_HOME)
set --export JAVA_HOME
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
Fish shell 现在有一个用于字符串操作的
string
内置命令。这是在版本 2.3.0(2016 年 5 月)中添加的。例如,在本例中,我们可以使用
string Replace
来删除Value:
子字符串:string
还可以做更多的事情。来自字符串命令文档:The fish shell now has a
string
builtin command for string manipulation. This was added in version 2.3.0 (May 2016).E.g. in this case, we could use
string replace
to remove theValue:
substring:There's lots more that
string
can do. From the string command documentation:重击:
鱼:
或
Bash:
Fish:
or
您可以使用 expr 和 regexp 来代替 sed,例如:
命令:
提取不带扩展名的文件基本名。
请参阅
man expr
Instead of sed, u could make use of expr with a regexp, for example:
the command:
extract the file basename without extension.
See
man expr
Fish shell:
输出(示例):
您也可以添加到
~/.config/fish/config.fish
这行:WBR
Fish shell:
Output (example):
Also u can add to
~/.config/fish/config.fish
this line:WBR