2011-12-09 4 views

답변

2

스크립트가 원하는 것이 무엇인지 분명하지 않습니다.

이 오류의 원인은 스크립트에 인수를 전달하지 않기 때문입니다. 결과적으로 $1은 비어 있습니다.

당신은 인쇄 할 열 번호를 전달해야

ls -la | ./Column.sh 1 

은 열에있는 권한 열을 인쇄합니다 1.

1

Column.sh에 인수를 전달하지 않으므로 $ 1이 빈 문자열입니다. 아마도 당신이해야 할 일은 다음과 같습니다.

 
ls -a | while read name; do ./Column.sh $name; done 
0

AWK 그렇게 AWK에 쉘 변수를 전달하는 기능을 가지고 당신은 당신의 awk 스크립트에 인용 게임을 할 필요가 없습니다 :

#!/bin/sh 
awk -v "column=${1:-1}" '{print $column}' 

나는 매개 변수가 지정되지 않은 경우 1의 기본값을 제공하기 위해 쉘의 "기본값"메커니즘을 사용합니다.