환경 변수를 설정하는 쉘 스크립트
변수를 내보내는 쉘 스크립트를 작성하고 싶습니다.
아래에 스크립트를 나열했습니다.
echo "Perform Operation in su mode"
export ARCH=arm
echo "Export ARCH=arm Executed"
export PATH='/home/linux/Practise/linux-devkit/bin/:$PATH';
echo "Export path done"
export CROSS_COMPILE='/home/linux/Practise/linux-devkit/bin/arm-arago-linux-gnueabi-';
echo "Export CROSS_COMPILE done"
그러나 이것은 제대로 작동하지 않는 것 같습니다. 대신 쉘 프롬프트에서 개별적으로 명령을 실행해야합니다.
스크립트의 더 많은 부분을 보여 주시고 개별적으로 실행해야하는 명령과 간단하게 원하는 명령을 알려주십시오.
한편 변수를 확장하려면 작은 따옴표가 아닌 큰 따옴표를 사용해야합니다.
export PATH="/home/linux/Practise/linux-devkit/bin/:$PATH"
단일 명령 끝에있는 세미콜론도 필요하지 않습니다.
지금까지:
#!/bin/sh
echo "Perform Operation in su mode"
export ARCH=arm
echo "Export ARCH=arm Executed"
export PATH="/home/linux/Practise/linux-devkit/bin/:$PATH"
echo "Export path done"
export CROSS_COMPILE='/home/linux/Practise/linux-devkit/bin/arm-arago-linux-gnueabi-' ## What's next to -?
echo "Export CROSS_COMPILE done"
# continue your compilation commands here
...
다음 su
과 같이 실행할 수 있습니다.
su -c 'sh /path/to/script.sh'
참고 : OP는 셸 스크립트를 사용하여 대화 형 셸에서 내보내기 변수를 만드는 방법에 대한 단계를 명시 적으로 요청하지 않았습니다. 그는 자신의 대본을 최대한 평가하도록 요청했습니다. 그는 그의 대본이 어떻게 사용될 것인지에 대한 세부 사항을 언급하지 않았습니다. 대화식 쉘 을 사용 .
하거나 사용할 수 있습니다 source
. 독립형 scipt 일 수도 있고 source
다른 스크립트에서 가져온 것일 수도 있습니다 . 환경 변수는 대화 형 셸에만 국한되지 않습니다. 이 대답은 그의 문제를 해결했습니다.
source
또는 약어 로 스크립트를 실행해야합니다..
source ./myscript.sh
또는
. ./myscript.sh
이는 기존 셸 내에서 실행되어 스크립트가 생성하거나 수정 한 모든 변수를 스크립트가 완료된 후 사용할 수 있도록합니다.
파일 이름 만 사용하여 스크립트를 실행하면 별도의 하위 쉘에서 스크립트가 실행됩니다.
나는 그것을 해결할 수 없다 source ./myscript.sh
. 소스를 찾을 수 없음 오류가 표시됩니다.
을 (를) 사용하는 경우에도 실패했습니다 . ./myscript.sh
. myscript.sh를 열 수 없습니다.
그래서 내 옵션은 다음 스크립트에서 호출 할 텍스트 파일에 넣는 것입니다.
#!/bin/sh
echo "Perform Operation in su mode"
echo "ARCH=arm" >> environment.txt
echo "Export ARCH=arm Executed"
export PATH="/home/linux/Practise/linux-devkit/bin/:$PATH"
echo "Export path done"
export "CROSS_COMPILE='/home/linux/Practise/linux-devkit/bin/arm-arago-linux-gnueabi-' ## What's next to -?" >> environment.txt
echo "Export CROSS_COMPILE done"
# continue your compilation commands here
...
Tnen은 필요할 때마다 호출합니다.
while read -r line; do
line=$(sed -e 's/[[:space:]]*$//' <<<${line})
var=`echo $line | cut -d '=' -f1`; test=$(echo $var)
if [ -z "$(test)" ];then eval export "$line";fi
done <environment.txt
참고 URL : https://stackoverflow.com/questions/18547881/shell-script-to-set-environment-variables
'IT박스' 카테고리의 다른 글
스낵바가 자동으로 닫 혔을 때 어떻게 알림을받을 수 있습니까? (0) | 2020.11.19 |
---|---|
SQLite-ORDER BY RAND () (0) | 2020.11.19 |
iOS 9에서 iPad 앱을 멀티 태스킹에서 제외 할 수 있습니까? (0) | 2020.11.19 |
HTML 대신 일반 텍스트를 출력하는 angularjs (0) | 2020.11.19 |
Ruby 해시 화이트리스트 필터 (0) | 2020.11.19 |