Linux 动态计算的Bash变量
我有几个结构类似的目录树。 比如: ~/ 树1/ src/ 垃圾箱/ 树2/ src/ 垃圾箱/ 当我在Tree1/src下面的某个地方工作时,我想使用Tree1/bin。当我在Tree2/src下面的某个地方工作时,我想使用Tree2/bin 有没有办法定义一个shell变量,它的值取决于我当前的工作目录?cwd=$pwd应该可以做到这一点。它将打印工作目录pwd的输出分配给一个变量 要将~Tree1/src/dir1/dir2替换为~Tree1/bin,您可以执行以下操作Linux 动态计算的Bash变量,linux,bash,shell,Linux,Bash,Shell,我有几个结构类似的目录树。 比如: ~/ 树1/ src/ 垃圾箱/ 树2/ src/ 垃圾箱/ 当我在Tree1/src下面的某个地方工作时,我想使用Tree1/bin。当我在Tree2/src下面的某个地方工作时,我想使用Tree2/bin 有没有办法定义一个shell变量,它的值取决于我当前的工作目录?cwd=$pwd应该可以做到这一点。它将打印工作目录pwd的输出分配给一个变量 要将~Tree1/src/dir1/dir2替换为~Tree1/bin,您可以执行以下操作 bindir=$(
bindir=$(pwd | sed 's/src.*/bin/')
另请参见cwd=$pwd应该起作用。它将打印工作目录pwd的输出分配给一个变量
要将~Tree1/src/dir1/dir2替换为~Tree1/bin,您可以执行以下操作
bindir=$(pwd | sed 's/src.*/bin/')
另请参见PWD是一个变量,已由bash、ksh和其他shell设置为当前目录 PWD是bash、ksh和其他shell已经设置到当前目录的变量 正如jlliagre所说,bash和许多其他现代shell一样,将当前工作目录存储在$PWD中;如果是Tree1/src/some/other/directory,则只需使用参数展开即可从中提取Tree1/bin:
$ echo $PWD
Tree1/src/some/other/directory
$ echo ${PWD%%src*}bin
Tree1/bin
正如jlliagre所说,bash和许多其他现代shell一样,将当前工作目录存储在$PWD中;如果是Tree1/src/some/other/directory,则只需使用参数展开即可从中提取Tree1/bin:
$ echo $PWD
Tree1/src/some/other/directory
$ echo ${PWD%%src*}bin
Tree1/bin
通常,$PWD变量Present Working Directory包含当前目录的路径。如果未定义此变量,可以使用pwd命令返回当前路径。通常$pwd variable Present Working Directory包含当前目录的路径。如果未定义此变量,则可以使用pwd命令返回当前路径。其他两个current定义包括脚本启动时所在的目录,即文件开头的start_dir=$pwd的值,无论脚本位于何处以及脚本本身的目录-script_dir=$dirname-$readlink-f-$0。当前的两个其他定义包括脚本启动时所在的目录,即文件开头的start_dir=$PWD的值,无论脚本位于何处以及脚本本身的目录-script_dir=$dirname-$readlink-f-$0