我编写了一个bash脚本,该脚本创建了一系列目录并将一个项目克隆到所选目录中。
为此,我需要访问cd
每个目录(project 1
和project 2
),但是脚本不需要cd
访问第二个目录,也不执行命令。
而是cd
在project2
目录克隆后停止。为什么cd_project1
在下面的代码中不调用该函数?
#!/bin/bash
#Get the current user name
function my_user_name() {
current_user=$USER
echo " Current user is $current_user"
}
#Creating useful directories
function create_useful_directories() {
if [[ ! -d "$scratch" ]]; then
echo "creating relevant directory"
mkdir -p /home/"$current_user"/Downloads/scratch/"$current_user"/project1/project2
else
echo "scratch directory already exists"
:
fi
}
#Going to project2 and cloning
function cd_project2() {
cd /home/"$current_user"/Downloads/scratch/"$current_user"/project1/project2 &&
git clone https://username@bitbucket.org/teamsinspace/documentation-tests.git
exec bash
}
#Going to project1 directory and cloning
function cd_project1() {
cd /home/"$current_user"/Downloads/scratch/"$current_user"/project1/ &&
git clone https://username@bitbucket.org/teamsinspace/documentation-tests.git
exec bash
}
#Running the functions
function main() {
my_user_name
create_useful_directories
cd_project2
cd_project1
}
main
终端输出:
~/Downloads$. ./bash_install_script.sh
Current user is mihi
creating relevant directory
Cloning into 'documentation-tests'...
remote: Counting objects: 125, done.
remote: Compressing objects: 100% (115/115), done.
remote: Total 125 (delta 59), reused 0 (delta 0)
Receiving objects: 100% (125/125), 33.61 KiB | 362.00 KiB/s, done.
Resolving deltas: 100% (59/59), done.
~/Downloads/scratch/mihi/project1/project2$
3
考虑接受答案之一。如果一个以上的答案是一个问题的解决方案,请接受最佳答案,然后再投票表决另一个答案。
—
LeonidMew
嗨LeonidMew。抱歉,我不知道如何接受答案。不过,两个答案都一样好。
—
詹妮
@Jenny,别着急。阅读有人回答我的问题时该怎么办?相反,当你满意时采取相应的行动。慢慢来,没有理由赶时间。如果您决定是一天,一周还是任何时间,这是完全可以的。
—
PerlDuck
@LeonidMew距问题被问到已经不到45分钟,等待的时间更长,可以,甚至可能会得到更好的答案(就像PerlDuck的评论说的那样,它只是在我键入时弹出的)
—
Xen2050
我很好奇您打算
—
暂停,直到另行通知。
exec bash
做什么。