주택 검사

주택 검사

이 작업을 해결하는 방법은 무엇입니까?

파일의 복사본을 만듭니다.

  • 파일은 현재 디렉터리(사용자가 지정한 파일 이름)에 있어야 합니다.
  • 사용자가 지정한 대상 디렉터리의 이름입니다.

이것이 내가 얼마나 멀리 왔는지입니다:

echo "Enter the name of the file:"
read filename 
cp -r /home/$FILE ;;

약간의 정보만 추가하면 전체 연습의 기초가 됩니다.

스크립트는 다음 옵션이 포함된 메뉴를 제공해야 합니다.

1. To create a backup copy of a script file. 

백업 복사본 이름에는 스크립트 이름 뒤에 백업이 포함되어야 하며 날짜 스탬프가 표시되어야 합니다(예: work3Script_backup_10_11_2015).

이는 홈 디렉터리의 환경 변수를 사용하여 홈 디렉터리에 저장되어야 합니다.

스크립트는 파일이 존재하고 일반 파일인지 오류 확인을 해야 합니다. 그렇지 않은 경우 스크립트는 유효한 파일 이름이 입력될 때까지 사용자가 파일 이름을 다시 입력할 수 있도록 허용해야 합니다.

2. To create a date stamped log file called e.g. log_file_10_11_2015   
   containing 

 >  A list of who is logged into the system

 >  The disk usage and

 >  Your currently running processes. 

 >  The file should be saved to an existing directory called log_dir which 
   should 
   be situated off your home directory


3. To create a copy of a file.   

파일은 현재 디렉터리(사용자가 지정한 파일 이름)에 있어야 합니다.

사용자가 지정한 대상 디렉터리의 이름입니다.

스크립트는 파일이 존재하고 일반 파일인지 오류 확인을 해야 합니다. 그렇지 않은 경우 스크립트는 유효한 파일 이름이 입력될 때까지 사용자가 파일 이름을 다시 입력할 수 있도록 허용해야 합니다.

스크립트는 대상 디렉터리가 존재하는지 확인해야 합니다. 그렇지 않은 경우 스크립트는 유효한 디렉터리가 입력될 때까지 사용자가 대상 디렉터리에 다시 들어갈 수 있도록 허용해야 합니다.

제가 만든 메뉴는 이렇습니다.

#!/bin/bash

while true
do
echo "=============================="
echo            "Menu"
echo "=============================="
echo "Option 1 Backing up files: "
echo "Option 2 Date stamped log file: "
echo "Option 3 Create a copy of a file: "
echo "Option 4 Moving a file to place giving by the user: "
echo "Enter q to quit the menu: "
echo -e "\n"
echo -e "Enter your option: \c"
read answer
case "$answer" in

1) while true ; do
   echo "Enter the file name:"
   read filename
   if [ -f "$filename" ]; then
       echo "The file exists."
       break
   else
       echo "File doesn't exist."
   fi
done

FILE=$(date +"outcome3_backup_%d_%m_%y.sh")
touch /home/robert/$FILE ;;


2)FILE=$(date +"log_file_%d_%m_%y.txt")
  touch /home/robert/log_dir/$FILE

  echo "Users online: " > /home/robert/log_dir/$FILE
  (users) >> /home/robert/log_dir/$FILE


  echo "Running proccesses:" >> /home/robert/log_dir/$FILE
  ps -a >> /home/robert/log_dir/$FILE


  echo "Available disk space:" >> /home/robert/log_dir/$FILE
  df --total -h|head -n 1 >> /home/robert/log_dir/$FILE
  df --total -h|tail -n 1 >> /home/robert/log_dir/$FILE ;;


3) ;;


q) exit ;;

esac
done

답변1

In Sorva, J. (2018) 오해와 초보 프로그래머. In: Barendsen, E., Schulte, S., Sentance, S. (Eds.) 컴퓨터 과학 교육: 학교에서의 교육 및 학습에 대한 관점. 런던, Bloomsbury, pp. 171-188. 컴퓨터가 컴퓨터 프로그램을 해석하는 방법에 대해 널리 알려진 오해가 있습니다.

M18: 프로그램은 자연스러운 대화에서 어느 정도 문장으로 해석됩니다. 실용적인 목적을 위해 컴퓨터나 프로그래밍 환경은 프로그래머의 의도를 추론할 수 있습니다. 예를 들어, 배우지 않고도 "분명히" 누락된 정보를 채울 수 있습니다.

IE 변수 이름은 첫 번째 예와 다릅니다. 컴퓨터는 그것들을 완전히 다른 것으로 본다.


echo "Enter the name of the file:"
read filename 
cp -r /home/$FILE

FILE: 와 달리 filename대소문자와 철자가 다릅니다.


참고 사항: 변수 이름에 모두 대문자를 사용하지 마십시오. shellcheck오류를 찾기 위해 스크립트를 전달합니다 .

주택 검사

echo '#!/bin/bash
echo "Enter the name of the file:"
read filename
cp -r /home/$FILE' | shellcheck /dev/stdin

상품을 반품하다

In /dev/stdin line 3:
read filename
^-- SC2162: read without -r will mangle backslashes.
     ^-- SC2034: filename appears unused. Verify use (or export if used externally).


In /dev/stdin line 4:
cp -r /home/$FILE
^-- SC2225: This cp has no destination. Check the arguments.
            ^-- SC2086: Double quote to prevent globbing and word splitting.

관련 정보