我需要使用一行命令创建并导航到目录。并且它必须在函数内部。我是终端和Shell脚本的新手,对此了解不多。
我的过程是这样的:
我写目录的名称并将其存储到$dirname
变量中,然后键入“ create”并将其存储到另一个名为$thecommand
的变量中,以创建名称为I的目录给,并导航到它。
我有一个create()
函数。在函数内部,我先执行mkdir ./$dirname
,然后执行cd $dirname
。然后,我施加了一个条件:如果用户在$thecommand
变量中写入的内容(顺便说一句,$dirname
和$thecommand
都被读取,所以用户写入了值)等于“创建”。
目录已创建,但未导航到该目录。因此,我尝试创建别名p="$dirname"
,并将别名应用到函数中,尽管如此,它仍创建了目录,但没有导航!
如果有人帮助我,我将不胜感激。
这是我的代码:
echo "Write Folder name"
read dirname
echo "Write -create- to create the folder"
read thecommand
p="$dirname"
function create() {
mkdir ./"$p"
cd "$p"
}
if [ "$thecommand" == "create" ]
then
create
fi
答案 0 :(得分:0)
您可以做一些事情。
首先,只需修改mkdir
或.bashrc
中的.bash_aliases
函数
function mkdir() {
command mkdir -p $1 # This creates the folder
command cd $1 # Then it immediately switches
command pwd # Remove this if you don't need confirmation. This just prints out current directory
}
如果您不希望每次 都发生这种情况,可以将函数名称更改为create
或任何您喜欢的名称。
function create() {
command mkdir -p $1 # Note: the `-p` flag just creates a folder,
# like if you do `mkdir test/more`
# you will get an error that it is not valid.
# This does not change a regular `mkdir` command
command cd $1
command pwd
}
或者,您可以cd
进入新创建的文件夹