bash: 无法 trim 路径 "dirname" - 路径是一个目录
bash: unable to trim path with "dirname" - path is a directory
根据dirname --help
,命令dirname /usr/bin/sort
会输出/usr/bin
所以我尝试了这个:
1 #!/bin/bash
2
3 rawPath=""
4 trimmed=dirname $rawPath
5 echo $trimmed
和运行脚本:
bash ./trimPath.sh /files/data/swx_i/raw/2020/03
输出:
./trimPath.sh: line 5: /files/data/swx_i/raw/2020/03: is a directory
是因为我把路径存在变量里还是别的什么?
GNU bash,版本 4.1.2(2)-release (x86_64-redhat-linux-gnu)
这一行:
trimmed=dirname $rawPath
会暂时将trimmed
环境变量设置为dirname
然后尝试运行$rawPath
。 这就是它所抱怨的,事实上您正试图运行目录。
如果你想将该命令的输出放在一个变量中,你会看到类似这样的东西:
trimmed="$(dirname "$rawPath")"
根据dirname --help
,命令dirname /usr/bin/sort
会输出/usr/bin
所以我尝试了这个:
1 #!/bin/bash
2
3 rawPath=""
4 trimmed=dirname $rawPath
5 echo $trimmed
和运行脚本:
bash ./trimPath.sh /files/data/swx_i/raw/2020/03
输出:
./trimPath.sh: line 5: /files/data/swx_i/raw/2020/03: is a directory
是因为我把路径存在变量里还是别的什么?
GNU bash,版本 4.1.2(2)-release (x86_64-redhat-linux-gnu)
这一行:
trimmed=dirname $rawPath
会暂时将trimmed
环境变量设置为dirname
然后尝试运行$rawPath
。 这就是它所抱怨的,事实上您正试图运行目录。
如果你想将该命令的输出放在一个变量中,你会看到类似这样的东西:
trimmed="$(dirname "$rawPath")"