我想分别获取文件名(没有扩展名)和扩展名.
我到目前为止找到的最佳解决方案是:
NAME=`echo "$FILE" | cut -d'.' -f1`
EXTENSION=`echo "$FILE" | cut -d'.' -f2`
Run Code Online (Sandbox Code Playgroud)
这是错误的,因为如果文件名包含多个.字符,它将不起作用.如果,让我们说,我有a.b.js,它会考虑a和b.js,而不是a.b和js.
它可以在Python中轻松完成
file, ext = os.path.splitext(path)
Run Code Online (Sandbox Code Playgroud)
但是如果可能的话,我宁愿不为此启动Python解释器.
有更好的想法吗?
我正在做一些非常简单的事情:v=5 echo "$v"并期望它打印出来5.但事实并非如此.刚刚设置的值不适用于下一个命令.
我最近了解到 " 在大多数shell中,管道的每个命令都在一个单独的SubShell中执行 ".但是,在这种情况下,两个命令都在同一个子shell中执行.
为什么会这样?有没有办法让这个工作?
完整示例:
$ v=1
$ v=5 echo "$v"
1 # I expected 5!
Run Code Online (Sandbox Code Playgroud)