세게 때리다
#!/bin/bash
echo "Please enter your name."
read name
then
echo "Good day $name, here is your calendar for this month:"
cal
echo "Today is" `date +%A`
if test $date -lt friday
then
echo "TGIF"
fi
답변1
필요한 권한은 실행 권한입니다. 하지만 스크립트에 몇 가지 오류가 있습니다. 실행해 보면 첫 번째 오류가 명확하게 표시됩니다.
$ chmod u+x jason.sh
$ ./jason.sh
Please enter your name.
Jason
./jason.sh: line 4: syntax error near unexpected token `then'
./jason.sh: line 4: `then'
수정하고 다시 실행하면 얻을 수 있습니다.
$ ./jason.sh
Please enter your name.
Jason
Good day Jason, here is your calendar for this month:
February 2020
Su Mo Tu We Th Fr Sa
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
Today is Friday
./jason.sh: line 7: test: -lt: unary operator expected
이렇게 날짜를 비교할 수는 없습니다. 확인해주세요.쉘에서 두 날짜를 비교하는 방법은 무엇입니까?
답변2
스크립트를 실행하려면 실행 가능 및 읽기 권한이 필요합니다. 결국 이것은 해석된 언어이고 커널은 이를 한 줄씩 읽어야 합니다. 이러한 권한을 부여하는 명령은 다음과 같습니다."
chmod u+rx script.sh
물론, 쉘 인터프리터에 대한 인수로서 읽기 권한만으로 실행할 수 있습니다:
bash script.sh
답변3
포그라운드에서 루트로 실행하지 않는 경우 스크립트를 실행할 수 있는 권한이 필요합니다.
chmod +x scriptName.sh
그리고 스크립트에 구문 오류가 거의 없으므로 아래 스크립트를 사용할 수 있습니다.
#!/bin/bash
echo "Please enter your name."
read name
echo "Good day $name, here is your calendar for this month:"
cal
echo "Today is" `date +%A`
if [ "`date +%A`" == Friday ]
then
echo "TGIF"
fi
답변4
안녕하세요 @Jason, 이것을 시도해 보세요
chmod u=rx,g=x,o=rwx jason.sh