스크립트는 Mac 컴퓨터에서 실행되어 출력 파일을 생성하지만 Ubuntu 컴퓨터에서는 오류 메시지를 생성합니다. 두 예제 모두 Bash 셸을 사용합니다.
1 - /var
2 - /etc :
1
: bad variable name: read: word
first_part(1).sh: 6: first_part(1).sh: Syntax error: newline unexpected (expecting ")")
-
echo "To scan through the directories /var and /etc type 1 or 2: "
echo "1 - /var"
echo "2 - /etc : "
read word
case $word in
1)
find /var -type d -follow -ls | awk '{print $3, $5, $6, $11}' > var.txt
echo "Your file containing /var information has been created."
;;
2)
find /etc -type d -follow -ls | awk '{print $3, $5, $6, $11}' > etc.txt
echo "Your file containing /etc information has been created."
;;
*)
echo "Please insert a valid input"
continue
;;
esac
답변1
다음 을 사용하여 파일을 실행 sh filename.sh
하면 bash
내 Ubuntu 12.04 시스템에서 소프트 링크 sh
(사용; 참조)/bin/sh
/bin/dash
d
"대시는 /bin/sh입니다").
를 사용 bash filename.sh
하거나 shebang 라인을 사용하여 파일을 실행 가능하게 만들어야 합니다( chmod +x filename.sh
).
#!/bin/bash
echo "To scan through the directories /var and /etc type 1 or 2: "
echo "1 - /var"
.
.
od -c file_name
Mac에서 Ubuntu로 파일을 이동할 때 확인해야 할 사항 중 하나는 출력에 '\r' 문자가 있지만 \n
이를 변환해야 하는 경우 파일의 줄 바꿈( 사용)입니다 . 예를 들어 다음을 사용합니다.
tr '\r' '\n' < file_name > new_file_name
.
답변2
몇 가지 추가 대안:
sh filename.sh
예
source filename.sh
그리고
. filename.sh
저는 하루에 몇 번씩 Ubuntu와 OSX 사이를 오가며 도트 파일을 공유하는데, 이것이 제게는 효과가 있는 것 같습니다.
.bash_profile
참고로, OSX 관련 항목은 거기 에 넣었고 두 시스템에 공통적인 항목이 source
있습니다 ..bashrc