2012-07-16 3 views
0

스크립트 (myScript.ksh라고 말하면)에는 파일 경로가 들어있는 변수가 있습니다. 내 코드에서cat은 파일을 열 수 없습니다.

file=/home/vikas/input.ksh 

나는이

myVariable=`cat $file | grep "on this line" | cut -d"'" -f2` 

같은 것을 수행하여이 파일에 대한 일반 고양이와 그렙를하고있는 중이 야, 그래서 그 파일에서 필요 뭔가 지금은 매번 내가 얻을 myScript.ksh를 시작 내가 터미널에 direcly 같은 일을 할 경우

cat: cannot open /home/vikas/input.ksh 

는하지만 파일 input.ksh의 내용을 볼 수 있어요 오류

내가 뭘 잘못하고 있는지 몰라, 누군가 제발 나를 도와 줄 수 있니? 그래도 문제가 아니었다 그래서 OK :

+1

파일 경로입니까? /home/vikas/input.ksh를 사용해 보셨습니까? – Kasapo

+6

"고양이는 파일을 열 수 없습니다"그들은 반대 엄지가 없습니다. – vcsjones

+0

@vcsjones 어쩌면 나는 킥킥 웃지 않아야한다. – Kasapo

답변

0

네, 마침내 문제가 해결되었지만 솔루션이 제대로 작동하지 않고 작동하는 이유를 이해할 수 없었습니다. 사실 나는 다른 파일에서이 변수를 읽고 있었다 그리고이

file=$HOME/vikas/input.ksh 

문제 같은되었다 내가 변수 파일에서 $ 홈을 제거하고 추가 내가했던 $ 홈으로했다가 다시

file=`echo $file | awk 'BEGIN { FS="/"; OFS="/" } {$1=""; print $0}'` 

file=$HOME$file 
을 수행하여

그 후 나는 cat $ 파일을 실행했고 작동했습니다.

3

시도하고 슬래시를 플립, 리눅스는 / 대신 사용

+1

Wug.brofist (Miquel) – Wug

3

\의 슬래시가 아닌 백 슬래시

file=/home/vikas/input.ksh 

편집을 사용합니다.

는 여기에 우리가이 시점에서 무엇을 알고 :

  • 그는 올바른 슬래시를 사용하고.
  • 파일 이름을 하드 코드하면 스크립트가 작동합니다.
  • 스크립트가 다른 사용자로 실행되고 있습니다 (제 생각에는?).

은 스크립트로 실행되는 사용자 표시, 그리고 출력을 게시하시기 바랍니다 : 또한

ls -l /home/vikas/input.ksh 

, file myScript.ksh의 출력은 무엇을?

+0

오타를 입력하여 죄송합니다.이 변수는 일부 프로세스에서 자동 생성되므로 슬래시 만있었습니다. 파일 이름을 하드 코드하면 스크립트 –

+0

에 수동으로 쓰지 않을 것입니다. 작동합니까? 대소 문자를 구분하는 것과 같은 문제입니까? – Wug

+0

또한 오류 메시지를 복사하여 붙여 넣었습니다. 당신은 그것을 다시 입력하지 않았습니까? – Wug

관련 문제