C 쉘 OK 파일

C 쉘 OK 파일

저는 C Shell을 처음 접했습니다. 명령줄에서 파일을 읽고 zip 파일, .txt, 심볼릭 링크, 파이프 또는 기타 파일("알 수 없음")인지 확인하려고 합니다.

그런 다음 유형에 따라 몇 가지 명령을 실행하고 싶습니다. 예를 들어, .txt 파일인 경우 해당 파일에 대한 정보("텍스트 파일입니다")를 인쇄하고 크기를 제공합니다.

-ls 대신 명령줄에서 어떻게 읽을 수 있나요? 고민된다

이것이 내가 지금까지 얻은 것입니다. 실행할 때마다 이것을 얻습니다.

cshell.sh: Command not found


#!/bin/tcsh

#copying the out of ls -l command to a file
ls -l > /tmp/tmp.tmp

#initilizing values
sum=0
dir=0
file=0
link=0

#reading the file
while read line
do 
    #getting the first character of each line to check the type of file     
    read -n 1 c <<< $line

    #checking if the file is a directory or not
    if [ $c == "d" ] 
    then
        ((dir++))
        echo "[DIR] ${line}/" | cut -d" " --fields="1 9" >> /tmp/dir.tmp

    elif [ $c == "-" ] #true if the file is a regular file
    then
        ((file++))
        echo $line | cut -d" " -f8 >> /tmp/file.tmp

    elif [ $c == "l" ]  #true if the file is a symbolic link
    then
        ((link++))
    fi

    size=$( echo $line | cut -d" " -f5 ) #getting the size of the file
    sum=$(( sum+size )) #adding the size of all the files 
done < /tmp/tmp.tmp

cat /tmp/file.tmp #output the name of all the files
cat /tmp/dir.tmp #output the name of all the directory

echo "Total regular files = $file"
echo "Total directories = $dir"
echo "Total symbolic links = $link"
echo "Total size of regular file = $size"

#removing the temporary files
rm /tmp/file.tmp
rm /tmp/dir.tmp
rm /tmp/tmp.tmp

답변1

cshell.sh명령을 찾도록 명령줄을 구성 하지 않았기 때문에 명령을 찾을 수 없습니다 .

명령으로 찾으려면 두 가지 작업을 수행해야 합니다. 다음과 같이 실행 가능으로 표시해야 합니다.

$ chmod go+x cshell.sh

또한 실행 경로에 넣거나 경로명으로 실행해야 합니다. 스크립트가 포함된 디렉터리에 있는 경우 다음을 사용하여 실행할 수 있습니다.

$ ./cshell.sh

다음을 사용하여 실행 경로를 확인할 수도 있습니다.

$ echo $PATH

관련 정보