스크립트는 Mac에서는 작동하지만 Ubuntu에서는 작동하지 않습니다.

스크립트는 Mac에서는 작동하지만 Ubuntu에서는 작동하지 않습니다.

스크립트는 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/dashd"대시는 /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_nameMac에서 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

관련 정보