728x90
반응형

Bash 21

Bash에 변수가 설정되어 있는지 확인하는 방법

질문 : Bash에 변수가 설정되어 있는지 확인하는 방법은 무엇입니까? Bash에 변수가 설정되어 있는지 어떻게 알 수 있습니까? 예를 들어, 사용자가 함수에 첫 번째 매개 변수를 제공했는지 어떻게 확인합니까? function a { # if $1 is set ? } 답변 (통상) 올바른 방법 if [ -z ${var+x} ]; then echo "var is unset"; else echo "var is set to '$var'"; fi 여기서 ${var+x} 는 var 가 설정되지 않은 경우 아무것도 평가하지 않는 매개 변수 확장 이고 그렇지 않은 경우 x 따옴표 삽입 따옴표를 생략 할 수 있습니다 ( "${var+x}" 대신 ${var+x} 라고 말할 수 있음).이 구문과 사용법은 따옴표가 필요없는..

개발관련/other 2022.03.29

스크립트 파일의 시작 부분에 #! / bin / bash를 넣어야하는 이유

질문 : 스크립트 파일의 시작 부분에 #! / bin / bash를 넣어야하는 이유는 무엇입니까? 나는 전에 Bash 스크립트를 만들었고 처음에는 #!/bin/bash 없이 잘 실행되었습니다. 그것을 넣는 이유는 무엇입니까? 상황이 다를까요? 또한 # 어떻게 발음합니까? 알아 ! "뱅"으로 발음됩니다. #! 명백한? 답변 이것은 규칙이므로 * nix 쉘은 실행할 인터프리터의 종류를 알고 있습니다. 예를 들어, 이전 버전의 ATT는 기본적으로 sh (Bourne 셸)로 설정되었지만 이전 버전의 BSD는 기본적으로 csh (C 셸)로 설정되었습니다. 오늘날에도 (대부분의 시스템이 bash, "Bourne Again Shell"을 실행하는 곳) 스크립트는 bash, python, perl, ruby, PHP ..

개발관련/Linux 2022.03.26

./configure: /bin/sh^M: bad interpreter 오류

질문 : ./configure : / bin / sh ^ M : 잘못된 인터프리터 내 공급 12 시스템에 lpng142를 설치하려고했습니다. 나에게 문제인 것 같습니다. 이 오류가 발생합니다. [root@localhost lpng142]# ./configure bash: ./configure: /bin/sh^M: bad interpreter: No such file or directory [root@localhost lpng142]# 이 문제를 어떻게 해결합니까? /etc/fstab 파일 : # # /etc/fstab # Created by anaconda on Wed May 26 18:12:05 2010 # # Accessible filesystems, by reference, are maintaine..

개발관련/Linux 2022.01.17

Bash에서 명령의 출력에 변수를 설정하는 방법

질문 : Bash에서 명령의 출력에 변수를 어떻게 설정합니까? 다음과 같은 매우 간단한 스크립트가 있습니다. #!/bin/bash VAR1="$1" MOREF='sudo run command against $VAR1 | grep name | cut -c7-' echo $MOREF 명령 줄에서이 스크립트를 실행하고 인수를 전달할 때 출력이 표시되지 않습니다. $MOREF 변수에 포함 된 명령을 실행하면 출력을 얻을 수 있습니다. 스크립트 내에서 실행해야하는 명령의 결과를 가져 와서 변수에 저장 한 다음 해당 변수를 화면에 출력하려면 어떻게해야합니까? 답변 백틱 `command` $(command) 또는 "$(command)" 하여 명령 대체 를 수행 할 수 있습니다.이 방법은 읽기 쉽고 중첩이 가능합니다...

개발관련/other 2021.12.29

대화 형 편집기없이 Bash를 사용하여 자동으로 크론 작업을 만드는 방법

질문 : 대화 형 편집기없이 Bash를 사용하여 자동으로 크론 작업을 만드는 방법은 무엇입니까? crontab에는 편집기를 사용하지 않고 cron 작업을 생성하기위한 인수가 있습니까 (crontab -e). 그렇다면 Bash 스크립트에서 cronjob을 만드는 코드는 무엇입니까? 답변 다음과 같이 crontab에 추가 할 수 있습니다. #write out current crontab crontab -l > mycron #echo new cron into cron file echo "00 09 * * 1-5 echo hello" >> mycron #install new cron file crontab mycron rm mycron * * * * * "command to be executed" - - - -..

개발관련/other 2021.12.15

sudo echo "something">> / etc / privilegedFile이 작동하지 않습니다.

질문 : sudo echo "something">> / etc / privilegedFile이 작동하지 않습니다. 이것은 Linux의 sudo 권한에 대한 매우 간단한 질문입니다. 적어도 그래야 할 것 같습니다. /etc/hosts 또는 유사한 파일에 무언가를 추가하고 싶지만 루트로도 > 및 >> 둘 다 허용되지 않기 때문에 끝낼 수없는 경우가 많습니다. su 또는 sudo su 를 루트로 만들지 않고도이 작업을 수행 할 수 있습니까? 답변 tee --append 또는 tee -a 사용하십시오. echo 'deb blah ... blah' | sudo tee -a /etc/apt/sources.list 따옴표 안에 따옴표를 사용하지 마십시오. 데이터를 콘솔로 다시 인쇄하지 않으려면 출력을 / dev / ..

개발관련/other 2021.12.14

git 저장소의 모든 파일에있는 총 줄 수를 계산하는 방법

질문 : git 저장소의 줄 수 계산 git 저장소의 모든 파일에있는 총 줄 수를 어떻게 계산합니까? git ls-files 는 git이 추적하는 파일 목록을 제공합니다. 나는에 명령을 찾고 있어요 cat 모든 파일을. 같은 것 git ls-files | [cat all these files] | wc -l 답변 xargs 는 원하는 것을 수행합니다. git ls-files | xargs cat | wc -l 그러나 더 많은 정보와 아마도 더 나은 방법으로 다음을 수행 할 수 있습니다. git ls-files | xargs wc -l 출처 : https://stackoverflow.com/questions/4822471/count-number-of-lines-in-a-git-repository

개발관련/Git 2021.12.12

Bash 스크립트에서 사용자에게 확인을 요청하는 방법

질문 : Bash 스크립트에서 사용자에게 확인을 요청하는 방법은 무엇입니까? 빨리 "확실합니까?" 잠재적으로 위험한 bash 스크립트의 맨 위에 확인 메시지가 표시됩니다.이 작업을 수행하는 가장 쉽고 / 가장 좋은 방법은 무엇입니까? 답변 read -p "Are you sure? " -n 1 -r echo # (optional) move to a new line if [[ $REPLY =~ ^[Yy]$ ]] then # do dangerous stuff fi levislevis85 의 제안 (감사합니다!)을 통합 -n 옵션을 추가하여 Enter 키 를 누를 필요없이 한 문자를 허용 read . 이들 중 하나 또는 둘 다를 사용할 수 있습니다. 또한 부정 형식은 다음과 같습니다. read -p "Are y..

개발관련/other 2021.12.12

Windows 에서 Git Bash의 속도를 높이는 방법.

질문 : Git Bash는 Windows 7 x64에서 매우 느립니다. 저는 작은 프로젝트를 개발하는 동안 Windows와 Ubuntu 모두에서 Git을 사용해 왔으며, 둘 사이를 자주왔다 갔다했습니다. 문제는 Git Bash가 지속적으로 느려진다는 것입니다. cd 를 실행하는 데 8 ~ 25 초가 걸리고 git 명령을 실행하는 데 5 ~ 20 초가 ls 를 실행하는 데 최대 30 초가 걸리는 경우도 있습니다. 말할 필요도없이 이것은 비생산적인 것은 말할 것도없고 재미도 없습니다. 나는 Git이 Windows에서 느리다는 것을 알고 있지만 이것은 어리석은 일입니다. 나를 위해 일시적으로 작동 한 한 가지 해결책은 네트워크 연결을 비활성화하고 ( 이 답변 에서 제안한대로) Git Bash를 시작한 다음 다..

개발관련/Git 2021.12.06

Bash에서 단일 명령으로 셸 변수에 기본값 할당

질문 : Bash에서 단일 명령으로 셸 변수에 기본값 할당 변수가 설정되지 않은 경우 bash (3.00) 셸 스크립트의 변수에 대한 전체 테스트가 있습니다. if [ -z "${VARIABLE}" ]; then FOO='default' else FOO=${VARIABLE} fi 나는 이것을 한 줄로 수행하는 몇 가지 구문이 있음을 기억하는 것 같습니다. 예를 들어 삼항 연산자와 비슷한 것입니다. FOO=${ ${VARIABLE} : 'default' } (그것이 작동하지 않는다는 것을 알고 있지만 ...) 내가 미쳤습니까, 아니면 그런 것이 있습니까? 답변 실제로 게시 한 내용과 매우 유사합니다. 이를 위해 "bash 매개 변수 확장"이라는 것을 사용할 수 있습니다. 할당 된 값을 가져 오거나 누락 된..

개발관련/other 2021.11.24

프로젝트에서 모든 .pyc 파일을 제거하는 방법

질문 : 프로젝트에서 모든 .pyc 파일을 제거하려면 어떻게해야합니까? 상당히 큰 프로젝트에서 일부 파일의 이름을 변경했으며 남은 .pyc 파일을 제거하고 싶습니다. bash 스크립트를 시도했습니다. rm -r *.pyc 그러나 그것은 내가 생각했던 것처럼 폴더를 통해 반복되지 않습니다. 내가 도대체 뭘 잘못하고있는 겁니까? 답변 find . -name "*.pyc" -exec rm -f {} \; 출처 : https://stackoverflow.com/questions/785519/how-do-i-remove-all-pyc-files-from-a-project

텍스트 파일 끝에 내용을 추가하는 방법

질문 : 텍스트 파일 끝에 출력을 추가하는 방법 텍스트 파일 끝에 명령 출력을 어떻게 추가합니까? 답변 출력을 파일로 보낼 때 > 대신 >> 를 사용하십시오. your_command >> file_to_append_to file_to_append_to 가 존재하지 않으면 생성됩니다. 예: $ echo "hello" > file $ echo "world" >> file $ cat file hello world 출처 : https://stackoverflow.com/questions/6207573/how-to-append-output-to-the-end-of-a-text-file

개발관련/other 2021.11.17

Bash의 문자열에서 고정 접두사 / 접미사 제거

질문 : Bash의 문자열에서 고정 접두사 / 접미사 제거 내 bash 스크립트에는 문자열과 접두사 / 접미사가 있습니다. 원래 문자열에서 접두사 / 접미사를 제거해야합니다. 예를 들어 다음과 같은 값이 있다고 가정 해 보겠습니다. string="hello-world" prefix="hell" suffix="ld" 다음 결과를 얻으려면 어떻게해야합니까? result="o-wor" 답변 $ foo=${string#"$prefix"} $ foo=${foo%"$suffix"} $ echo "${foo}" o-wor 이는 매뉴얼의 셸 매개 변수 확장 섹션에 설명되어 있습니다. ${parameter#word} ${parameter##word} 단어가 확장되어 패턴을 생성하고 아래 설명 된 규칙에 따라 일치됩니다 ..

개발관련/other 2021.11.15

[bash] stderr로 출력하는 에코

질문 : stderr로 출력하는 에코 echo처럼 작동하지만 stdout이 아닌 stderr로 출력하는 표준 Bash 도구가 있습니까? echo foo 1>&2 할 수 있다는 것을 안다. 그러나 그것은 다소 추하고, 오류가 발생하기 쉽다고 생각한다. 답변 이렇게하면 쉽게 읽을 수 있습니다. >&2 echo "error" >&2 는 파일 설명자 # 2를 파일 설명자 # 1에 복사합니다. 따라서이 리디렉션이 수행 된 후 두 파일 설명자는 동일한 파일을 참조합니다. 하나의 파일 설명자 # 2가 원래 참조했던 파일입니다. 자세한 내용은 Bash Hackers Illustrated Redirection Tutorial을 참조하십시오. 출처 : https://stackoverflow.com/questions/299..

개발관련/other 2021.11.11

명령 줄에서 'git commit -m'에 줄 바꿈 추가

질문 : 명령 줄에서 'git commit -m'에 줄 바꿈 추가 명령 줄에서 Git을 사용하고 있으며 Vim에 들어 가지 않고 커밋 메시지에 줄 바꿈을 추가하려고합니다 ( git commit -m "" 이것이 가능한가? 답변 확실히, 그것이 어떻게 수행되는지는 당신의 셸에 달려 있습니다. Bash에서 메시지 주위에 작은 따옴표를 사용할 수 있으며 따옴표를 열어두면 따옴표를 닫을 때까지 Bash가 다른 줄에 대해 프롬프트합니다. 이렇게 : git commit -m 'Message goes here' 또는 "here 문서"(heredoc라고도 함)를 사용할 수 있습니다. git commit -F-

개발관련/Git 2021.10.19

Bash 셸 스크립트에서 입력 인수가 있는지 확인

질문 : Bash 셸 스크립트에서 입력 인수가 있는지 확인 입력 인수의 존재를 확인해야합니다. 다음 스크립트가 있습니다. if [ "$1" -gt "-1" ] then echo hi fi 나는 얻다 [: : integer expression expected 입력 argument1이 있는지 먼저 확인하려면 어떻게해야합니까? 답변 그것은: if [ $# -eq 0 ] then echo "No arguments supplied" fi $# 변수는 스크립트가 전달 된 입력 인수의 수를 알려줍니다. 또는 인수가 빈 문자열인지 여부를 확인할 수 있습니다. if [ -z "$1" ] then echo "No argument supplied" fi -z "$1" 의 확장이 널 문자열인지 여부를 테스트합니다. 널 문자열..

개발관련/other 2021.10.08

awk 또는 sed로 문자열을 재귀 적으로 찾기 / 바꾸는 방법

질문 : awk 또는 sed로 문자열을 재귀 적으로 찾기 / 바꾸는 방법은 무엇입니까? 다음 항목을 모두 찾아서 바꾸려면 어떻게해야합니까? subdomainA.example.com 와 subdomainB.example.com /home/www/ 디렉토리 트리 아래의 모든 텍스트 파일에서 반복적으로? 답변 find /home/www \( -type d -name .git -prune \) -o -type f -print0 | xargs -0 sed -i 's/subdomainA\.example\.com/subdomainB.example.com/g' -print0 은 새 행이 아닌 널 문자로 구분 된 각 결과를 인쇄하도록 find 디렉토리에 이름에 줄 바꿈이있는 파일이있는 경우에도 xargs 가 올바른 파일..

개발관련/other 2021.07.20

Linux 셸 스크립트에서 Yes/No/Cancel 입력을 요청하는 방법

질문 : Linux 셸 스크립트에서 예 / 아니요 / 취소 입력을 요청하는 방법은 무엇입니까? 쉘 스크립트에서 입력을 일시 중지하고 사용자에게 선택을 요청하고 싶습니다. 표준 Yes , No 또는 Cancel 유형 질문입니다. 일반적인 bash 프롬프트에서 어떻게 수행합니까? 답변 쉘 프롬프트에서 사용자 입력을 얻는 가장 간단하고 널리 사용 가능한 방법은 read 명령입니다. 사용법을 설명하는 가장 좋은 방법은 간단한 데모입니다. while true; do read -p "Do you wish to install this program?" yn case $yn in [Yy]* ) make install; break;; [Nn]* ) exit;; * ) echo "Please answer yes or no..

개발관련/Linux 2021.06.15

Linux를 복사하지만 덮어 쓰지 않는 방법

질문 : Linux를 복사하지만 덮어 쓰지 않는 방법은 무엇입니까? 디렉토리를 cp 하고 싶지만 복사 된 파일보다 오래된 기존 파일을 덮어 쓰고 싶지 않습니다. 그리고 이것은 Crontab Bash 스크립트의 일부가 될 것이기 때문에 완전히 비대화 형으로하고 싶습니다. 어떤 아이디어? 답변 man 페이지 에서 발췌 : -n, --no-clobber do not overwrite an existing file (overrides a previous -i option) 예: cp -n myoldfile.txt mycopiedfile.txt 출처 : https://stackoverflow.com/questions/9392735/linux-how-to-copy-but-not-overwrite

개발관련/Linux 2021.06.11

명령 줄에서 Linux의 CPU / 코어 수를 얻는 방법

질문 : 명령 줄에서 Linux의 CPU / 코어 수를 얻는 방법은 무엇입니까? 이 스크립트가 있지만 인쇄물의 마지막 요소를 얻는 방법을 모르겠습니다. cat /proc/cpuinfo | awk '/^processor/{print $3}' 마지막 요소는 CPU 수에서 1을 뺀 값이어야합니다. 답변 grep -c ^processor /proc/cpuinfo /proc/cpuinfo 에서 "processor"로 시작하는 줄 수를 계산합니다. 하이퍼 스레딩이있는 시스템의 경우 다음을 사용할 수 있습니다. grep ^cpu\\scores /proc/cpuinfo | uniq | awk '{print $4}' (예를 들어) 8 을 반환해야합니다 (위의 명령은 16 을 반환합니다). 출처 : https://stac..

개발관련/Linux 2021.06.09
728x90
반응형