저도 두 쉘 스크립트를 앨시 b.시 '와', ''.
셸 스크립트 '에서' 어떻게 '콜' b.시 앨시?
몇 가지 다른 방법으로 이 작업을 수행할 수 있습니다.
It 의 '소스' 명령 (가명) 는 '.') 또는 전화 다음과 같습니다. '소스 / path / to / script ";
배시 '또는' 명령을 실행하는 데 사용할 수 있다. / bin / bash /path/to/script ','
첫 번째와 세 번째 방법은 다른 프로세스에 따라 또 다른 스크립트입니다 스크립트입니다 도왔으매 변수 및 기능을 실행할 수 없습니다. 두 번째 방법은, s 의 첫 번째 script& 실행하므로 스크립트입니다 # 39 에서 다른 변수 및 기능을 사용할 수 있도록 프로세스, 당기는 스크립트입니다 &solarisdvd 호출하십시오 스크립트입니다.
둘째, 이를 사용하는 경우 '' 의 첫 번째 스크립트입니다 종료하십시오 ss+sp 스크립트입니다 종료하십시오 잘 알려져 있다. 첫 번째와 세 번째 벌어질 않는 방법입니다.
몇 가지 방법으로 이 작업을 수행할 수 있습니다. 터미널 실행하기 위해 스크립트입니다.
#!/bin/bash
SCRIPT_PATH="/path/to/script.sh"
# Here you execute your script
"$SCRIPT_PATH"
# or
. "$SCRIPT_PATH"
# or
source "$SCRIPT_PATH"
# or
bash "$SCRIPT_PATH"
# or
eval '"$SCRIPT_PATH"'
# or
OUTPUT=$("$SCRIPT_PATH")
echo $OUTPUT
# or
OUTPUT=`"$SCRIPT_PATH"`
echo $OUTPUT
# or
("$SCRIPT_PATH")
# or
(exec "$SCRIPT_PATH")
어떤 답을 찾고 있었어요.
( exec "path/to/script" )
앞에서 언급한 것처럼 '실행' 을 새로 만드는 과정 없이 덮어씁니다 쉘로. , 단, 이는 우리가 할 수 있는 것이 서브셸 통해 수행되며 파라나지스.
편집: 실제로 ' (" path/to/script"; ) '충분하다.
달려 있다. 잠시. 스케쳐내 ' (myshellfile.sh)' 에 대한 로드하십시오 실행하십시오 소스 코드에서 변수 현재 콘솔 및 사용할 수 있습니다. 예:
!#/bin/bash
set -x
echo "This is an example of run another INTO this session."
source my_lib_of_variables_and_functions.sh
echo "The function internal_function() is defined into my lib."
returned_value=internal_function()
echo $this_is_an_internal_variable
set +x
만약 싶은 유일한 실행하십시오 파일이므로 인터스팅 당신꺼에요 결과 할 수 있습니다.
!#/bin/bash
set -x
./executing_only.sh
sh i_can_execute_this_way_too.sh
bash or_this_way.sh
set +x
큰 도움이 될 수 있기를 바란다. 감사합니다.
'실행' 을 사용할 수 있습니다 / bin / sh 전화를 하거나 다른 스크립트 (통해 실제 스크립트입니다):
# cat showdate.sh
#!/bin/bash
echo "Date is: `date`"
# cat mainscript.sh
#!/bin/bash
echo "You are login as: `whoami`"
echo "`/bin/sh ./showdate.sh`" # exact path for the script file
출력물에는 다음과 같습니다.
# ./mainscript.sh
You are login as: root
Date is: Thu Oct 17 02:56:36 EDT 2013
'$ (소스 SCRIPT_NAME)'
이 작품을 할 때 극대화됩니다 해석기 (예를 들어 다른 bash 스크립트입니다 충스러웠으니 bash) 와 같은 수 있는 셔뱅 줄의 서브노드 스크립트입니다 실행되지 않습니다.
예를 들면 다음과 같습니다.
#!/bin/bash
SUB_SCRIPT=$(mktemp)
echo "#!/bin/bash" > $SUB_SCRIPT
echo 'echo $1' >> $SUB_SCRIPT
chmod +x $SUB_SCRIPT
if [[ $1 == "--source" ]]; then
for X in $(seq 100); do
MODE=$(source $SUB_SCRIPT "source on")
done
else
for X in $(seq 100); do
MODE=$($SUB_SCRIPT "source off")
done
fi
echo $MODE
rm $SUB_SCRIPT
출력:
~ ❯❯❯ time ./test.sh
source off
./test.sh 0.15s user 0.16s system 87% cpu 0.360 total
~ ❯❯❯ time ./test.sh --source
source on
./test.sh --source 0.05s user 0.06s system 95% cpu 0.114 total
< sup> *< /sup>;;; 예를 들어, small> <, 바이러스 또는 보안 툴과도 장치에서 실행하고 새 수도 있지만 추가 100ms 불러키지 exec process.< /small>;
#!/bin/bash
# Here you define the absolute path of your script
scriptPath="/home/user/pathScript/"
# Name of your script
scriptName="myscript.sh"
# Here you execute your script
$scriptPath/$scriptName
# Result of script execution
result=$?
Solaris. 새 파일이 " /home/satya/app/app_specific_env"; 및 파일 내용이 다음과 같이
#!bin/bash
export FAV_NUMBER="2211"
이 파일은 파일 /.bashrc 덮어쓰기/추가 참조입니다 ~
source /home/satya/app/app_specific_env
그 때 다시 시작할 때, '에코 시스템 또는 레오긴 시도하시겠습니까 $ FAV_NUMBER' 이 가능하다. 또 출력입니다 값입니다.
만일에 대비하는거야 스케쳐내 바로 효과를 볼 수 있는 '소스' ~ /.bashrc 명령줄입니다.
가져오기할 기능을 몇 가지 문제를 다른 커넥터로부터 절실해졌습니다.
. file
모든 가져오기할 총괄하였습니다. 및 모두야 될 수 있는 것처럼 정의됩니까 절실해졌습니다.
declare -f new_function_name=old_function_name
그 후 유일한 못하며창조된 가져오기의. 이전 요청할 수 있도록 기능을 통해 새로운 이름.
다른 파일의 경우 동일한 디렉터리인 할 수 있습니다.
"' 배시 another_script.sh "'
또는
"' 소스 another_script.sh "'
또는
"' . another_script.sh "'
'소스', '대신' 배시 사용할 때 스크립트입니다 상위입니다 스크립트입니다 환경을 변경할 수 없습니다. 이 명령은 '소스' 명령 '.' 는 POSIX 표준 상태에서 더 잘 한다 '.' (I 포지셔닝하십시오 '원본' 오버 '.') 를 내주었다. 그냥 다른 위치에 있는 경우 그 경로를 제공하십시오 스크립트입니다 스크립트입니다. 물론 세계 전체 경로는 모두 상대.