bash 30

Bash 셸 스크립트에 디렉토리가 있는지 확인하려면 어떻게 해야 합니까?

Bash 셸 스크립트에 디렉토리가 있는지 확인하려면 어떻게 해야 합니까? Bash 셸 스크립트 내에 디렉토리가 있는지 확인하는 명령은 무엇입니까?디렉터리가 있는지 확인하는 방법 if [ -d "$DIRECTORY" ]; then echo "$DIRECTORY does exist." fi 디렉터리가 존재하지 않는지 확인하는 방법 if [ ! -d "$DIRECTORY" ]; then echo "$DIRECTORY does not exist." fi 그러나 Jon Ericson이 지적했듯이, 디렉토리에 대한 심볼릭 링크도 이 검사를 통과한다는 점을 고려하지 않으면 후속 명령이 의도한 대로 작동하지 않을 수 있습니다.예: 실행: ln -s "$ACTUAL_DIR" "$SYMLINK" if [ -d "$SYML..

programing 2023.05.02

Cygwin에서 루트 사용자/sudo와 동등합니까?

Cygwin에서 루트 사용자/sudo와 동등합니까? Cygwin에서 bash 스크립트를 실행하려고 합니다. 알겠습니다Must run as root, i.e. sudo ./scriptname오류 chmod 777 scriptname도움이 되지 않습니다. "su"를 부르면 오류가 발생하기 때문에 Cygwin에서 sudo를 모방하고 루트 사용자를 추가하는 방법을 찾았습니다.su: user root does not exist유용한 것은 무엇이든 찾았지만 아무것도 찾지 못했습니다. 제안할 사람?저는 슈퍼유저에서 이 질문에 답했지만 OP가 도움이 되지 않는 답변을 무시한 후에야 질문에 대한 유일한 답이 되었습니다. SuperUser에 대한 제 답변에서 복사한 Cygwin의 권한을 높이는 적절한 방법은 다음과 같습니..

programing 2023.05.02

Unix 콘솔 또는 Mac 터미널에서 셸 스크립트를 실행하는 방법은 무엇입니까?

Unix 콘솔 또는 Mac 터미널에서 셸 스크립트를 실행하는 방법은 무엇입니까? 저도 알아요, 잊어버리고 다시 배워요.적어야 할 시간입니다.실행 불가능 파일을 실행하려면 다음과 같이 하십시오.sh스크립트, 사용: sh myscript 실행 불가능 파일을 실행하려면 다음과 같이 하십시오.bash스크립트, 사용: bash myscript 실행 파일(실행 권한이 있는 파일)을 시작하려면 경로로 지정하면 됩니다. /foo/bar /bin/bar ./bar 스크립트를 실행 파일로 만들려면 필요한 권한을 부여합니다. chmod +x bar ./bar 파일이 실행 가능한 경우 커널은 파일을 예상하는 방법을 파악하는 역할을 합니다.이진이 아닌 경우 파일의 첫 번째 줄을 보면 됩니다.다음을 포함해야 합니다.hashban..

programing 2023.04.27

grep에서 별표 사용

grep에서 별표 사용 Linux/bash의 특정 파일에서 하위 문자열 "abc"를 검색하려고 합니다. 그래서 나는: grep '*abc*' myFile 아무것도 반환되지 않습니다. 하지만 내가 한다면, grep 'abc' myFile 일치하는 항목을 올바르게 반환합니다. 자, 이것은 저에게 문제가 되지 않습니다.하지만 만약 내가 더 복잡한 문자열을 찾고 싶다면, 이렇게 말합니다. *abc * def * grep을 사용하여 어떻게 수행해야 합니까?별표는 반복 연산자에 불과하지만 반복되는 내용을 알려주어야 합니다. /*abc*/는 b와 0 또는 그 이상의 c를 포함하는 문자열과 일치합니다(두 번째 *는 c에 있기 때문에, 첫 번째 *는 반복할 대상이 없으므로 의미가 없습니다).매치하고 싶은 것이 있다면 다..

programing 2023.04.27

결과를 "찾는" 가장 좋은 방법은 무엇입니까?

결과를 "찾는" 가장 좋은 방법은 무엇입니까? 나의 현재 해결책은find -exec printf '.' \; | wc -c하지만 10000개 이상의 결과가 있을 때는 너무 오래 걸립니다.이를 위한 더 빠른/더 나은 방법은 없습니까?그거 좋지 find | wc -l 간단한 휴대용 솔루션으로?원래 솔루션은 새로운 프로세스를 생성하는 것입니다. printf각 파일이 발견될 때마다 매우 많은 비용이 소요됩니다(방금 발견). 새 줄이 포함된 파일 이름이 있으면 이 값이 초과되지만, 새 줄이 포함된 경우 문제가 더 심각할 수 있습니다.대신 사용해 보십시오(필수).find의-printf지원): find -type f -printf '.' | wc -c 그것은 라인을 세는 것보다 더 신뢰할 수 있고 더 빠를 것입니다...

programing 2023.04.27

Bash에 대한 인라인 댓글?

Bash에 대한 인라인 댓글? 한 줄 명령어로 하나의 플래그를 주석으로 달 수 있으면 좋겠습니다.Bash는 단지 가지고 있는 것처럼 보입니다.from # till end-of-line평.저는 다음과 같은 속임수를 보고 있습니다. ls -l $([ ] && -F is turned off) -a /etc 못생겼지만 없는 것보다는 낫습니다.더 좋은 방법이 있습니까? 다음 항목이 작동하는 것처럼 보이지만 휴대용인지는 잘 모르겠습니다. ls -l `# -F is turned off` -a /etc 선호하는 항목: Bash 스크립트로 주석 달기 이것은 약간의 간접비가 있겠지만, 기술적으로 그것은 당신의 질문에 대답합니다. echo abc `#put your comment here` \ def `#another ch..

programing 2023.04.27

Bash 배열의 요소를 구분된 문자열로 결합하려면 어떻게 해야 합니까?

Bash 배열의 요소를 구분된 문자열로 결합하려면 어떻게 해야 합니까? Bash에 이와 같은 배열이 있는 경우: FOO=( a b c ) 요소를 쉼표로 결합하려면 어떻게 해야 합니까?를 들어, 를들어, 산생을 a,b,c.다중 문자 구분 기호를 지원하는 100% 순수 Bash 함수는 다음과 같습니다. function join_by { local d=${1-} f=${2-} if shift 2; then printf %s "$f" "${@/#/$d}" fi } 예를들면, join_by , a b c #a,b,c join_by ' , ' a b c #a , b , c join_by ')|(' a b c #a)|(b)|(c join_by ' %s ' a b c #a %s b %s c join_by $'\n' a..

programing 2023.04.27

텍스트 파일의 전체 줄을 줄 번호로 바꾸는 방법

텍스트 파일의 전체 줄을 줄 번호로 바꾸는 방법 파일의 전체 줄을 대체하는 bash 스크립트가 필요한 상황이 있습니다.라인 번호는 항상 동일하므로 하드 코딩된 변수일 수 있습니다. 해당 줄의 일부 하위 문자열을 바꾸려는 것이 아니라 해당 줄을 완전히 새 줄로 바꾸려는 것입니다. 이를 위한 bash 방법(또는 .sh 스크립트에 넣을 수 있는 간단한 방법)이 있습니까?최고는 아니지만, 이것은 효과가 있을 것입니다. sed -i 'Ns/.*/replacement-line/' file.txt N대상 라인 번호로 대체해야 합니다.원래 파일의 줄이 바뀝니다.하려면, ,-i옵션: sed 'Ns/.*/replacement-line/' file.txt > new_file.txt 저는 사실 얼마 전에 회사의 유닉스 서버에..

programing 2023.04.27

셸 프로그래밍에서 $(command)와 command의 차이점은 무엇입니까?

셸 프로그래밍에서 $(command)와 command의 차이점은 무엇입니까? 명령어의 출력을 sh/ksh/bash의 변수로 저장하려면 다음 중 하나를 수행합니다. var=$(command) 또는 var=`command` 두 방법 사이에 어떤 차이가 있습니까?백틱/그레이브마크는 다음 이유로 폐지되었습니다.$()명령어 대체를 위해 사용됩니다.$()에서처럼 쉽게 자기 안에 둥지를 틀 수 있다$(echo foo$(echo bar))backtick/gravemark 버전에서는 백슬래시를 해석하는 방법 등 다른 차이점이 있습니다. "Bash" 참조몇 가지 이유로 항상 $(...) 구문을 선호합니다. 다양한 차이에 대한 자세한 내용은 POSIX 사양도 참조하십시오.그들은 똑같이 행동한다.차이점은 구문론입니다. 둥지를..

programing 2023.04.22

Unix 쉘 스크립트에서 환경 변수가 설정되어 있는지 확인하는 간결한 방법은 무엇입니까?

Unix 쉘 스크립트에서 환경 변수가 설정되어 있는지 확인하는 간결한 방법은 무엇입니까? 작업을 시작하기 전에 특정 환경 변수가 설정되어 있는지 확인해야 하는 Unix 쉘 스크립트가 몇 개 있기 때문에 다음과 같은 작업을 수행합니다. if [ -z "$STATE" ]; then echo "Need to set STATE" exit 1 fi if [ -z "$DEST" ]; then echo "Need to set DEST" exit 1 fi 타이핑이 많죠환경변수 세트가 설정되어 있는지 확인하기 위한 보다 우아한 관용어가 있습니까? 편집: 이러한 변수에는 의미 있는 기본값이 없습니다.설정되지 않은 변수가 있으면 스크립트는 에러 아웃됩니다.파라미터 확장 분명한 답은 파라미터 확장의 특수한 형식 중 하나를 사..

programing 2023.04.22