2013-03-12 5 views
0

z/OS에서 Bash 스크립트를 업데이트하고 있습니다.백틱 평가없이 Bash 스크립트에서 디렉토리 권한을 얻는 방법은 무엇입니까?

var=`command` 
[test value of var] 

문제는 한 고객이/tmp 디렉토리에 액세스 할 수 없습니다 것입니다, 및 z/OS는/tmp 디렉토리에있는 파일을 사용하여 현재 스크립트과 같이, 특정 조건을 테스트하기 위해 역 따옴표 명령의 결과를 사용 역 따옴표 명령에 대한 중간 데이터를 보유합니다.

필자는/tmp 접근성에 대한 백틱 명령 전에 테스트를 수행하고 이에 따라 스크립트의 동작을 변경할 수 있다고 생각합니다. 그래도 좋은 방법을 찾지 못합니다. 어떤 제안?

답변

3

if [[ -w /tmp ]]...은 현재 사용자가 /tmp에 대한 쓰기 권한이 있는지 테스트합니다.

다른 대안이있을 수 있습니다. 나는 Z/OS를 가지고 있지 않지만, 일부 UNIXs 예를 들어, 그래서 임시 디렉토리에 설정 될 수있는 변수 TMPDIR 있습니다

export TMPDIR="$HOME" 

가 작동하지 않을 수 있습니다.

또 다른 말로, 백틱은 일반적으로 사용되지 않는 것으로 간주됩니다. 대신 var=$(command)을 사용하십시오.

+0

완료된 작업을 가져옵니다. 감사. – Singlestone

4

bash에서 test 내장을 사용하여 파일 권한을 테스트 할 수 있습니다.

따라서 /tmp이 디렉토리인지 확인하거나 test -w /tmp을 사용하여 /tmp이 쓰기 가능한지 테스트 할 수 있습니다.

또한

if [ -d /tmp -a -w /tmp ] ; then 
    echo "/tmp is a directory and writable" 
fi 

가 bash는 help test 볼에 같은 test의 동의어로 [를 사용할 수 있습니다. 사용 가능한 모든 테스트를 설명합니다.

또 다른 한가지 : 때로는 프로그램이 sort -T /home/user/tmp과 같은 임시 데이터로 사용할 디렉토리를 알기도하고 때로는 TMPDIR 환경 변수를 고려합니다. 당신이 당신의 백틱 내에서 실행하는 프로그램에 달려 있습니다.

+0

멋진 정보. 고맙습니다. – Singlestone

관련 문제