它会给你这样的例子
嘿,试试basename home/zachary/HW04
使用基本名称
使用 basename 命令是提取当前目录最简单最简单的方法:
basename /usr/local/bin
输出将是bin
但是,它在更改目录变量的 shell 脚本中没有用。您可以将其与反引号内的 pwd 结合使用,使其更具动态性:
cd /usr/local/binbasename pwd
垃圾桶
将参数替换与 echo 一起使用
bash 脚本语言充满了很多不错的技巧,包括参数替换,它允许您操作或扩展变量。您可以使用带有 ${var##pattern} 语法的参数替换,它会从 $var 中删除与 $var 的前端匹配的 $Pattern 中最长的部分。看一个例子:
cd /var/log/squidecho ${PWD##*/}
乌贼
PWD 是保存当前路径的环境变量,## 是告诉脚本删除它找到的所有内容到 */ 的指令。换句话说,它会删除最后一个 / 之前的所有内容,只留下最后一个字符串,这里是当前目录 squid。您可以在 Advanced Bash-Scripting Guide 中了解有关参数替换和其他操作变量的方法的更多信息。
使用 awk 和 rev
更复杂的解决方案结合使用 awk(一种模式扫描实用程序)和 rev(一种从文件或标准输入反转行的实用程序):
cd /usr/share/cups/datapwd |转 | awk â€âF / '{print $1}' |转
数据
这样的脚本一步一步的理解会容易很多:
密码
/usr/share/cups/数据
密码 |转
atad/supc/erahs/rsu/
密码 |转 | awk â€âF / '{print $1}'
阿塔德
密码 |转 | awk â€âF / '{print $1}' |转
数据
-F 选项表示您应该按字段分隔,其中字段分隔符是 /,并且您应该打印字段 1。
使用 sed
最后,您可以使用精心制作的正则表达式在流编辑器 sed 中解析 pwd 输出。这种方法可能具有教育意义,但并不实用:
cd /home/smith/musicpwd | sed 's,^(./)\?([^/]),\2,'
音乐
为了更好地理解其工作原理,请删除转义字符 (),这是特殊字符(例如“(”:
sed 's,^(./)?([^/]),\2,'
密码。在类 Unix 和其他一些操作系统中,pwd 命令(打印工作目录)将当前工作目录的完整路径名写入标准输出。该命令是大多数 Unix shell 中的内置 shell,例如 Bourne shell、ash、bash、ksh 和 zsh。
pwd 显示当前工作目录。示例:/home/foobar
pwd -P 显示当前工作目录的物理路径——不带符号链接名,如果有的话。示例:如果站在 /home/symlinked 目录中,这是 /home/realdir 的符号链接,这将显示 /home/realdir
pwd -L 显示当前工作目录的逻辑路径 - 带有符号链接名称,如果有的话。示例:如果站在 /home/symlinked 目录中,这是 /home/realdir 的符号链接,这将显示 /home/symlinked
https://en.wikipedia.org/wiki/Pwd