根据dirname --help
,命令dirname /usr/bin/sort
将输出/usr/bin
所以我试了这个:
1 #!/bin/bash
2
3 rawPath="${1}"
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, version 4.1.2(2)-release (x86_64-redhat-linux-gnu)
这一行:
trimmed=dirname $rawPath
将暂时将trimmed
环境变量设置为dirname
,然后尝试运行$rawPath
。这就是它所抱怨的,您正在尝试运行目录的事实。
如果您希望将该命令的输出放在变量中,则会看到以下内容:
trimmed="$(dirname "$rawPath")"