셸 스크립트 내에서 디렉터리 계층 구조를 이동하여 호출자에 반영하는 방법
셸 스크립트 내에서 디렉터리 계층 구조를 이동하여 호출자에 반영하는 방법
간단한 쉘 스크립트 작성했기 때문에 후세에 남겨 둔다.
특히 쉘에 자세한 것은 아니기 때문에 뭔가 문제가 있으면 부담없이 편집 요청이나 코멘트 해주세요!
하고 싶은 일
mkdir 190512 && cd 190512
source ~/start.sh
데이터
~/ops/startTodaysOps.sh
#!/bin/bash
dir1='ops/'
dir2=`date "+%y%m%d"`
dir=$dir1$dir2
if [[ ! -e $dir ]]; then
mkdir $dir
chmod g+w $dir
fi
echo $dir
cd $dir
~/.bashrc
alias start='source ~/ops/startTodaysOps.sh'
실행하다
hirao $ start
ops/200512
hirao $ ~/ops/200512$
조금 해설
# 存在確認
if [[ ! -e $dir ]]; then
fi
# -p オプションで存在確認してもよし
mkdir $dir
# とりあえずグループに書き込み権限あたえる
chmod g+w $dir
cd $dir
# このCDは source で呼び出さないと別シェルでディレクトリ移動するっぽい
실행 쉘의 프로세스 ID를 내보내기
test.sh
#!/bin/bash
echo $$
~/workspace/shell-sample hirao$ echo $$
42143
~/workspace/shell-sample hirao$ ./test1.sh
42366
~/workspace/shell-sample hirao$ source ./test1.sh
42143
이런 느낌. source로 실행하면 원래의 쉘내에서의 이동이 되므로 실행 후에 이동되고 있습니다.
끝에
꽤 쓰여졌지만 스크립트를 작성하는 데 시간이 걸렸습니다 (
cd
하지 않고 빠졌습니다).
Reference
이 문제에 관하여(셸 스크립트 내에서 디렉터리 계층 구조를 이동하여 호출자에 반영하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ykhirao/items/f9e25324bc2e24891848텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)