我想将路径和文件名分配给变量:
/path/to/myfile/file.txt
例如
MYFILE=$(pwd)$(basename)
我该怎么做 ?
答案1
按照说明回答问题:这是一个简单的字符串连接。
somedirpath='/some/path' # for example $PWD or $(pwd)
somefilepath='/the/path/to/file.txt'
newfilepath="$somedirpath"/"$( basename "$somefilepath" )"
您很可能希望/
在连接字符串时在两个路径元素之间包含 a ,并basename
采用一个路径参数(问题中缺少这一点)。
阅读您的其他答案,看起来您正在寻找bash
脚本路径和名称。这在 中可用BASH_SOURCE
,它是一个数组。它是唯一的元素(除非你在一个函数中)将是你想要的。在一般情况下,它是最后的数组中您要查看的元素。
在bash
4.4 中,这是${BASH_SOURCE[-1]}
.
答案2
我尝试了这个并且有效:
#!/bin/bash
SCRIPT=$(pwd)$(basename $0)
echo $SCRIPT
如果有更好的方法,欢迎分享。