Linux 使用bash脚本获取当前目录的第二个根文件夹 让我们考虑一下我的脚本当前的工作目录是
Linux 使用bash脚本获取当前目录的第二个根文件夹 让我们考虑一下我的脚本当前的工作目录是,linux,bash,shell,Linux,Bash,Shell,/usr/src/app directory/upload/try.sh 在我的脚本中,我需要回显appdirectory,因为它是脚本的第二个根文件夹,还需要注意,我需要删除的不是字母数字字符串。我能够用下面的代码回显根文件夹upload #!/bin/bash echo "$(basename $(pwd))" 它回来了 $ ./try.sh upload 使用单个awk命令,可以执行以下操作: s='/Users/deanchristianarmada/Desktop/project
/usr/src/app directory/upload/try.sh
在我的脚本中,我需要回显appdirectory
,因为它是脚本的第二个根文件夹,还需要注意,我需要删除的不是字母数字字符串。我能够用下面的代码回显根文件夹upload
#!/bin/bash
echo "$(basename $(pwd))"
它回来了
$ ./try.sh
upload
使用单个
awk
命令,可以执行以下操作:
s='/Users/deanchristianarmada/Desktop/projects/infrastructure-playground/ci'
var=$(awk -F/ 'NF>1{p=$(NF-1); gsub(/[^[:alnum:]]+/, "", p); print p}' <<< "$PWD")
echo "$var"
使用单个
awk
命令,可以执行以下操作:
s='/Users/deanchristianarmada/Desktop/projects/infrastructure-playground/ci'
var=$(awk -F/ 'NF>1{p=$(NF-1); gsub(/[^[:alnum:]]+/, "", p); print p}' <<< "$PWD")
echo "$var"
awk
可能更容易:
var=$(awk -F'/' 'NF>2{print $(NF-1)}' <<<"$PWD" | sed 's/[^a-zA-Z0-9]//g')
var=$(awk-F'/''NF>2{print$(NF-1)}'awk
可能更容易:
var=$(awk -F'/' 'NF>2{print $(NF-1)}' <<<"$PWD" | sed 's/[^a-zA-Z0-9]//g')
var=$(awk-F'/''NF>2{print$(NF-1)}'您的脚本的缺点是它不是动态的,如果目录不同,如/Users/deanchristianarmada/Desktop/projects/infrastructure playway/ci/try,sh
,它就不会粘在第二根文件夹上。您的代码不会响应infrastructure playway
您脚本的缺点是它不是动态的如果目录不同,如/Users/deanchristianarmada/Desktop/projects/infrastructure playway/ci/try,sh
,则namic将不会保留在第二根文件夹中。很抱歉,您的代码不会回显infrastructure playway
但如何将其变为变量?以及如何排除非字母数字字符?Le假设根文件夹的第二个是app tri
,那么我需要存储到一个值为apptri
的变量中,以删除非字母字符并将结果存储到变量中。@anubhava是的,它会。据我所知,这就是OP想要的。@anubhava如果try.sh
位于/Users/deanchristianar中mada/Desktop/projects/infrastructure Playway/ci
然后OP希望路径中的最后一个目录是infrastructure Playway
(删除-
)。很抱歉,但是如何将其转换为变量?以及如何排除非字母数字字符?假设根文件夹的第二个是app tri
,那么我需要将值apptri
更新到一个变量中,以删除非字母数字字符并将结果存储到一个变量中。@anubhava是的,会的。这就是OP想要的据我所知,ed。@anubhava如果try.sh
位于/Users/deanchristianarmada/Desktop/projects/infrastructure playde/ci
中,那么OP想要路径中的最后一个目录,即infrastructure playde
(删除-
后)。你使用“root”很奇怪。我猜你的意思是“父目录”。你的项目的根目录(目录树开始的地方)显然是/usr/src/app directory
我的道歉,但是的,我是说父目录。你使用“根目录”很奇怪。我猜你真的是指“父目录”。你的项目的根目录(目录树开始的地方)显然是/usr/src/app目录
我的道歉,但是的,我指的是父文件夹