반응형

bash 16

[ : 셸 프로그래밍에서 예기치 않은 연산자

[ : 셸 프로그래밍에서 예기치 않은 연산자 이 질문에는 이미 다음과 같은 답이 있습니다. 예기치 않은 연산자 오류 (4개 답변) 마감됨7년 전에. 내 코드: #!/bin/sh #filename:choose.sh read choose [ "$choose" == "y" -o "$choose" == "Y" ] && echo "Yes" && exit 0 [ "$choose" == "n" -o "$choose" == "N" ] && echo "No" && exit 0 echo "Wrong Input" && exit 0 하지만 내가 실행할 때 sh ./choose.sh terminal 프롬프트를 표시합니다. [: 4: n: :Unexpected operator [: 5: n: :Unexpected operator..

programing 2023.06.04

Bash를 사용하여 파일에 특정 문자열이 포함되어 있는지 확인하는 방법

Bash를 사용하여 파일에 특정 문자열이 포함되어 있는지 확인하는 방법 bash에 특정 문자열이 포함되어 있는지 확인하고 싶습니다.이 스크립트를 사용했지만 작동하지 않습니다. if [[ 'grep 'SomeString' $File' ]];then # Some Actions fi 내 코드에 무슨 문제가 있습니까?if grep -q SomeString "$File"; then Some Actions # SomeString was found fi 필요없습니다[[ ]]명령을 직접 실행하십시오.더하다-q문자열을 찾을 때 표시할 필요가 없는 경우 옵션을 선택합니다. 그grep명령은 검색 결과에 따라 종료 코드에서 0 또는 1을 반환합니다. 무언가가 발견되면 0을 반환하고, 그렇지 않으면 1을 반환합니다. $ ech..

programing 2023.05.10

셸 동일 연산자(=, ==, -eq)

셸 동일 연산자(=, ==, -eq) 사이의 차이점은 무엇입니까?=,==그리고.-eq셸 스크립팅에서? 다음과 다른 점이 있습니까? [ $a = $b ] [ $a == $b ] [ $a -eq $b ] 단순하게도=그리고.==변수에 숫자가 포함된 경우에만 사용됩니까?=그리고.==문자열 비교를 위한 것입니다. -eq수치 비교를 위한 것입니다. -eq과 같은 과에 속함-lt,-le,-gt,-ge,그리고.-ne ==bash로 한정됩니다(sh(Bourne 셸)에는 없음).POSIX 사용=호환성을 위해 선호됩니다.bash에서는 둘이 같고, sh에서는 둘이 같습니다.=유일하게 작동할 것입니다. $ a=foo $ [ "$a" = foo ]; echo "$?" # POSIX sh 0 $ [ "$a" == foo ]; ec..

programing 2023.05.10

SSH 연결을 확인하는 bash 스크립트를 만드는 방법은 무엇입니까?

SSH 연결을 확인하는 bash 스크립트를 만드는 방법은 무엇입니까? 원격 시스템에 로그인하여 개인 키와 공용 키를 생성하는 bash 스크립트를 생성하는 중입니다. 문제는 원격 시스템이 매우 안정적이지 않고 항상 작동하지 않는다는 것입니다.SSH 연결이 작동하는지 확인할 수 있는 bash 스크립트가 필요합니다.나중에 사용할 키를 실제로 만들기 전에.ssh가 제공하는 반환 값으로 이를 확인할 수 있습니다. $ ssh -q user@downhost exit $ echo $? 255 $ ssh -q user@uphost exit $ echo $? 0 편집: 또 다른 방법은 nmap을 사용하는 것입니다(키나 로그인 정보가 필요하지 않음). $ a=`nmap uphost -PN -p ssh | grep open`..

programing 2023.05.10

Linux bash에서 타일의 의미(홈 디렉토리가 아님)

Linux bash에서 타일의 의미(홈 디렉토리가 아님) 우선, 나는 그것을 압니다.~/홈 디렉토리입니다.CD 작성 대상~또는~/홈 디렉토리로 이동합니다. 하만지,cd ~X나를 특별한 장소로 데려갑니다, 그곳에서.X아무 것도 아닌 것 같습니다. 서에, 내를치면가▁"를 치면,cd ~그리고 탭을 누르면, 그것은 많은 가능성을 보여줍니다.~X과 같은 ~mail그리고.~postgres그리고.~ssh해당 폴더로 이동하여 다음 작업을 수행하는 중pwd폴더가 홈 디렉토리에 있지 않고 여기저기에 있다는 것을 보여줍니다. 별칭이 아닙니다.확인했습니다.그들은 아닙니다.env.변수, 그렇지 않으면 필요할 것입니다.$. 이러한 링크를 설정하는 이유는 무엇이며, 설정하는 위치는 어디입니까?이것은 "타일드 확장"이라고 불리는 바..

programing 2023.05.10

Bash 스크립트의 경로에서 파일 이름만 가져옵니다.

Bash 스크립트의 경로에서 파일 이름만 가져옵니다. 이 질문에는 이미 다음과 같은 답이 있습니다. Bash에서 파일 이름 및 확장명 추출 (38개 답변) 마감됨6년 전에. 확장자가 없고 경로가 없는 파일 이름만 어떻게 얻을 수 있습니까? 다음은 확장을 제공하지 않지만 경로가 연결되어 있습니다. source_file_filename_no_ext=${source_file%.*} UNIX와 유사한 많은 운영 체제는basename매우 유사한 목적을 위한 실행 파일(및dirname경로): pax> full_name=/tmp/file.txt pax> base_name=$(basename ${full_name}) pax> echo ${base_name} file.txt 안타깝게도 확장자를 포함한 파일 이름만 제공되..

programing 2023.05.05

매개 변수를 Bash 함수에 전달합니다.

매개 변수를 Bash 함수에 전달합니다. Bash 함수에서 매개 변수를 전달하는 방법을 검색하려고 하지만 항상 명령줄에서 매개 변수를 전달하는 방법이 표시됩니다. 스크립트 내에서 매개 변수를 전달하고 싶습니다.노력했습니다. myBackupFunction("..", "...", "xx") function myBackupFunction($directory, $options, $rootPassword) { ... } 하지만 구문이 올바르지 않습니다.내 함수에 매개 변수를 전달하려면 어떻게 해야 합니까?함수를 선언하는 일반적인 방법은 두 가지가 있습니다.저는 두 번째 방법이 더 좋아요. function function_name { command... } 아니면요? function_name () { command..

programing 2023.04.25

여러 조건이 있는 Bash if 문이 오류를 발생시킵니다.

여러 조건이 있는 Bash if 문이 오류를 발생시킵니다. 두 개의 오류 플래그를 검사하는 스크립트를 작성하려고 하는데, 한 개의 플래그(또는 둘 다)가 변경되면 오류가 발생합니다.내 스크립트는 다음과 같습니다. my_error_flag=0 my_error_flag_o=0 do something..... if [[ "$my_error_flag"=="1" || "$my_error_flag_o"=="2" ] || [ "$my_error_flag"="1" && "$my_error_flag_o"="2" ]]; then echo "$my_error_flag" else echo "no flag" fi 기본적으로 다음과 같이 해야 합니다. if ((a=1 or b=2) or (a=1 and b=2)) then dis..

programing 2023.04.25

특정 형식의 파일만 있는 디렉토리를 어떻게 구분합니까?

특정 형식의 파일만 있는 디렉토리를 어떻게 구분합니까? diff 명령에 대한 질문이 있는데, 재귀 디렉토리 diff를 특정 파일 형식에만 원하는 경우 어떻게 해야 합니까? 제외 옵션을 사용하려고 했지만 한 패턴만 사용할 수 있습니다. $ diff /destination/dir/1 /destination/dir/2 -r -x *.xml 폴더 이미지 유형에 파일이 있더라도 xml 파일 형식만 제외할 수 있습니다(png,gif,jpg),txt,php,기타 특정 파일 형식만 구분하는 방법을 참조하십시오.다음을 지정할 수 있습니다.-x한 번 이상요 diff -x '*.foo' -x '*.bar' -x '*.baz' /destination/dir/1 /destination/dir/2 의 디렉토리 비교 섹션에서 확인..

programing 2023.04.25

실패할 때까지 셸 명령을 반복적으로 실행하시겠습니까?

실패할 때까지 셸 명령을 반복적으로 실행하시겠습니까? 믿을 수 없을 정도로 실패하는 애매한 테스트를 써봤어요.디버그 코드를 추가했지만 이제 디버그 출력을 수집할 수 있도록 실패할 때까지 테스트를 실행합니다. 다음을 사용하여 테스트를 실행할 수 있도록 설정했습니다. ./runtest 저의 현재 해결책은 다음을 작성하는 것입니다.untilfail스크립트: #!/bin/bash $@ while [ $? -eq 0 ]; do $@ done 그런 다음 사용합니다. untilfail ./runtest 더 간단한 해결책은 없나요?while실행할 명령이 필요하므로 간단한 명령을 사용할 수 있습니다. while ./runtest; do :; done 이렇게 하면 루프가 중지됩니다../runtest0이 아닌 종료 코드(일..

programing 2023.04.25
반응형