我正在尝试获取当前正在运行的Python脚本的名称.
例如,我有一个调用的脚本foo.py,我想在其中执行类似的操作:
print Scriptname
Run Code Online (Sandbox Code Playgroud)
得到:foo.py.
这不起作用:
find "$all_locks" -mindepth 1 -maxdepth 1 -type d | basename
Run Code Online (Sandbox Code Playgroud)
显然 basename 无法从 stdin 读取 - 在任何情况下 basename 都需要至少一个参数。
我需要作为 bash 脚本的参数给出的文件的基本名称。基本名称应去掉其文件扩展名。让我们假设$1 = "/somefolder/andanotherfolder/myfile.txt",期望的输出是"myfile"。
当前的尝试创建了一个我想避免的中间变量:
BASE=$(basename "$1")
NOEXT="${BASE%.*}"
Run Code Online (Sandbox Code Playgroud)
我尝试将其作为单行代码,通过管道输出 basename 的输出。但是,我不知道如何将标准输出传输到字符串替换。
编辑:这需要适用于可能具有不同长度的多个文件扩展名,因此字符串替换尝试如上所述。
这是您将文件上传到 firestore firebase 时出现的错误。所以我解决了这个错误。在“答案”部分查看下面的答案。谢谢
我想按年份对这个数组进行排序:
Array
(
[0] => data/pictures/alice/1980
[1] => data/pictures/alice/1985
[2] => data/pictures/bob/1981
[3] => data/pictures/bob/1985
[4] => data/pictures/bob/1987
[5] => data/pictures/bob/1989
)
Run Code Online (Sandbox Code Playgroud)
预期结果:
Array
(
[0] => data/pictures/alice/1980
[1] => data/pictures/bob/1981
[2] => data/pictures/alice/1985
[3] => data/pictures/bob/1985
[4] => data/pictures/bob/1987
[5] => data/pictures/bob/1989
)
Run Code Online (Sandbox Code Playgroud)
我已经尝试过不同的排序功能但没有成功。
例子:
asort($paths, SORT_STRING | SORT_FLAG_CASE);
sort($path, SORT_NUMERIC);
Run Code Online (Sandbox Code Playgroud) 我是 bash 的新手,我想知道如何从路径打印最后一个文件夹名称。
mypath="/Users/ckull/Desktop/Winchester stuff/a b c/some other folder/"
dir="$(basename $mypath)"
echo "looking in $dir"
Run Code Online (Sandbox Code Playgroud)
其中dir是路径中的最后一个目录。它应该打印为
some other folder
Run Code Online (Sandbox Code Playgroud)
相反,我得到:
Winchester
stuff
a
b
c
some
other
folder
Run Code Online (Sandbox Code Playgroud)
我知道空格会导致问题;) 我是否需要将结果通过管道传输到字符串然后替换换行符?或者也许有更好的方法......