728x90
반응형

Shell 19

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

./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

프로그램을 실행하거나 Python에서 시스템 명령을 호출하는 방법

질문 : 프로그램을 실행하거나 Python에서 시스템 명령을 호출하는 방법 Python 스크립트 내에서 외부 명령을 어떻게 호출합니까 (유닉스 셸 또는 Windows 명령 프롬프트에 입력 한 것처럼)? 답변 표준 라이브러리에서 subprocess 모듈을 사용합니다. import subprocess import sys command = subprocess.run(['ls', '-l'], capture_output=True) sys.stdout.buffer.write(command.stdout) sys.stderr.buffer.write(command.stderr) sys.exit(command.returncode) os.system 보다 subprocess.run 의 장점은 더 유연하다는 것입니다 ( st..

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

명령 출력을 클립 보드에 직접 복사하는 방법

질문 : 명령 출력을 클립 보드에 직접 복사하려면 어떻게해야합니까? 명령 출력을 내 클립 보드로 파이프하고 터미널을 사용할 때 다시 붙여 넣는 방법은 무엇입니까? 예를 들면 : cat file | clipboard 답변 나는 항상 이것을하고 싶었고 그것을하는 좋고 쉬운 방법을 찾았다. 다른 사람이 필요할 경우를 대비하여 전체 절차를 기록했습니다. xclip 이라는 16kB 프로그램을 설치하십시오. sudo apt-get install xclip 그런 다음 출력을 xclip 으로 파이프하여 클립 보드에 복사 할 수 있습니다. cat file | xclip 방금 복사 한 텍스트를 붙여 넣으려면 다음을 사용해야합니다. xclip -o 삶을 단순화하기 위해 .bashrc 파일에 내가 한 것처럼 별칭을 설정할 수..

개발관련/Linux 2021.12.05

Python interactive 세션을 저장하는 방법

질문 : Python 대화 형 세션을 저장하는 방법은 무엇입니까? 저는 Python의 인터프리터를 자주 사용하여 데이터베이스, 파일 등으로 작업합니다. 기본적으로 반 구조화 된 데이터의 많은 수동 형식화를 사용합니다. 원하는만큼 자주 유용한 비트를 적절하게 저장하고 정리하지 않습니다. 내 입력을 쉘에 저장하는 방법이 있습니까 (db 연결, 변수 할당, 작은 for 루프 및 논리 비트)-대화 형 세션의 일부 기록? script 와 같은 것을 사용하면 너무 많은 stdout 노이즈가 발생합니다. 실제로 모든 개체를 피클 할 필요는 없습니다. 그렇게하는 솔루션이 있다면 괜찮을 것입니다. 이상적으로는 대화 형으로 만든 스크립트로 실행되는 스크립트 만 남게되며 필요하지 않은 비트 만 삭제할 수 있습니다. 이를 수..

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

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

개발관련/other 2021.11.24

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

질문 : 텍스트 파일 끝에 출력을 추가하는 방법 텍스트 파일 끝에 명령 출력을 어떻게 추가합니까? 답변 출력을 파일로 보낼 때 > 대신 >> 를 사용하십시오. 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

명령 줄에서 '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

#! (shebang) Python 스크립트 형식

질문 : #! (shebang) Python 스크립트에서 어떤 형식을 취해야합니까? 파이썬 스크립트에 shebang을 넣어야합니까? 어떤 형태로? #!/usr/bin/env python 또는 #!/usr/local/bin/python 이것들은 똑같이 휴대 가능합니까? 어떤 형식이 가장 많이 사용됩니까? 참고 : 토네이도 프로젝트는 shebang을 사용합니다. 반면에 Django 프로젝트는 그렇지 않습니다. 답변 python 미리 입력하지 않고 또는 파일 관리자에서 두 번 클릭 할 때 (제대로 구성된 경우) 독립 실행 형 실행 파일처럼 스크립트가 실행되는 기능을 결정합니다. 필요하지는 않지만 일반적으로 거기에두기 때문에 누군가 편집기에서 열린 파일을 보면 즉시보고있는 것을 알 수 있습니다. 그러나, 당신이..

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

여러 장치가 연결된 경우 ADB Shell을 사용하는 방법 "error: more than one device and emulator"

질문 : 여러 장치가 연결된 경우 ADB Shell을 사용하는 방법은 무엇입니까? '오류 : 둘 이상의 기기 및 에뮬레이터'와 함께 실패 $ adb --help -s SERIAL use device with given serial (overrides $ANDROID_SERIAL) $ adb devices List of devices attached emulator-5554 device 7f1c864e device $ adb shell -s 7f1c864e error: more than one device and emulator 답변 -s 옵션을 사용하여 장치를 지정합니다. 예를 들면 다음과 같습니다. adb -s 7f1c864e shell http://developer.android.com/tools/h..

linux find에서 디렉토리를 제외하는 방법

질문 : find에서 디렉토리를 제외하는 방법. 명령 find 명령을 실행하려고하는데 특정 디렉토리를 제외하려면 어떻게해야합니까? 다음은 우리가 사용 find for file in $(find . -name '*.js') do java -jar config/yuicompressor-2.4.2.jar --type js $file -o $file done 답변 -prune 스위치를 사용하십시오. 예를 들어, misc 디렉토리를 제외하려면 find 명령에 -path ./misc -prune -o find . -path ./misc -prune -false -o -name '*.txt' 다음은 여러 디렉토리가있는 예입니다. find . -type d \( -path dir1 -o -path dir2 -o -pa..

개발관련/Linux 2021.08.06

쉘에서 Linux에서 한 파일을 다른 파일에 추가하는 방법

질문 : 쉘에서 Linux에서 한 파일을 다른 파일에 추가하는 방법은 무엇입니까? 두 개의 파일이 있습니다 : file1 및 file2 . 어떻게의 내용을 추가 할 file2 에 file1 의 내용 있도록 file1 과정을 계속? 답변 bash 내장 리디렉션 (tldp) 사용 : cat file2 >> file1 출처 : https://stackoverflow.com/questions/4969641/how-to-append-one-file-to-another-in-linux-from-the-shell

개발관련/Linux 2021.07.02

사람들이 파이썬 스크립트의 첫 번째 줄에 #! / usr / bin / env python을 쓰는 이유

질문 : 사람들이 파이썬 스크립트의 첫 번째 줄에 #! / usr / bin / env python을 쓰는 이유는 무엇입니까? 파일이 그 줄없이 똑같이 실행되는 것처럼 보입니다. 답변 여러 버전의 Python이 설치되어있는 경우 /usr/bin/env 는 사용 된 인터프리터가 환경의 $PATH 의 첫 번째 인터프리터인지 확인합니다. #!/usr/bin/python 과 같은 것을 하드 코딩하는 것입니다. 괜찮지 만 유연성이 떨어집니다. Unix에서 해석 할 실행 #! 를 사용하여 사용할 인터프리터를 나타낼 수 있습니다. 첫 번째 줄의 시작 부분에 인터프리터 (및 필요한 모든 플래그)가 이어집니다. 당신이 다른 플랫폼에 대해 얘기하는 경우, 물론,이 규칙이 적용되지 않습니다 (하지만 "오두막 라인은"아무런 ..

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
728x90
반응형