我一直在尝试创建一个可以向上移动目录的bash脚本。我创建了这个脚本,但是在运行时它不会执行任何操作。我尝试添加一个print语句,这确实有效。我应该以某种方式执行此操作吗? 脚本:
#!/usr/bin/zsh
DIR=$1
NUM=$PWD
for ((c=1; c <= DIR; c++))
do
echo $NUM
cd $NUM/..
done
答案 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