打开目录脚本?

时间:2017-05-17 23:06:42

标签: linux scripting cd

我一直在尝试创建一个可以向上移动目录的bash脚本。我创建了这个脚本,但是在运行时它不会执行任何操作。我尝试添加一个print语句,这确实有效。我应该以某种方式执行此操作吗? 脚本:

#!/usr/bin/zsh
DIR=$1
NUM=$PWD
for ((c=1; c <= DIR; c++))
do
    echo $NUM
    cd $NUM/..
done

1 个答案:

答案 0 :(得分:1)

如果我理解,您希望在目录树中向上移动目录。

这是一个脚本make别名在.bashrc中像:alias up1='cd../' alias up2='cd../../'等等,我限制了深度9.如果你多次运行它,脚本只会创建不存在的entrys。如果你给出更少的深度,我可以删除条目,然后脚本会管理这个别名。

不完全是你在寻找,但由于脚本在他们自己的实例中运行,你不能让它们影响你当前的shell。此脚本创建别名后,您需要重新进行身份验证或打开一个新的shell,从那时起它们将一直工作,直到您不从.bashrc中删除别名条目。

#!/bin/sh

[[ ! $# == 1 ]] && echo "Only one parameter accepted" && exit 1
[[ $( echo $1 | grep -c ^[1-9]$ ) -eq 0 ]] && echo "parameter must be between 1 and 9" && exit 1

cdcommand=""
for (( i = 1 ; i <= $1 ; i++ )); do
        cdcommand=$(echo $cdcommand | sed 's/^/\.\.\//g')
                [[ $( cat ~/.bashrc | grep -c "alias up$i='cd $cdcommand' ") == 0 ]] &&
                echo "alias up$i='cd $cdcommand' "  >> ~/.bashrc
done