쉘은 Unix의 명령 행 인터페이스입니다. 쉘에 대화식으로 명령을 입력하거나 작업을 자동화하는 스크립트를 작성할 수 있습니다. / bin / sh 및 가장 호환 가능한 쉘 (ash, bash, ksh, zsh,…)에 적용되는 질문에이 태그를 사용하십시오. 오류가있는 쉘 스크립트는 여기에 게시하기 전에 http://shellcheck.net에서 확인하십시오.
나는 그것이 VARIABLE=value환경 변수 를 만들고 export VARIABLE=value현재 쉘에 의해 생성 된 프로세스에서 사용할 수있게 한다는 것을 알고 있습니다. env현재 환경 변수를 보여 주지만 어디에 살고 있습니까? 무엇 (또는 환경 변수 구성 환경에 그 문제를)?
bash 스크립트로 줄을 파이프로 묶어 파이프에 데이터가 있는지 확인하고 프로그램에 공급하기 전에 파이프에 데이터가 있는지 확인하고 싶습니다. 내가 찾은 검색 test -t 0하지만 여기서 작동하지 않습니다. 항상 false를 반환합니다. 파이프에 데이터가 있는지 확인하는 방법은 무엇입니까? 예: echo "string" | [ -t 0 ] && echo "empty" || echo "fill" 산출: …
Bash는 내 보낸 변수와 그렇지 않은 변수를 구별하는 것으로 보입니다. 예: $ FOO=BAR $ env | grep FOO $ set | grep FOO FOO=BAR set변수를 볼 수는 있지만 env그렇지 않습니다. $ export BAR=FOO $ env | grep FOO BAR=FOO $ set | grep FOO BAR=FOO FOO=BAR set두 변수를 env볼 수 …
를 사용하여 여러 명령을 실행해야합니다 nohup. 각 명령은 이전 명령 다음에 실행해야합니다. 이 명령을 예로 사용했습니다. nohup wget $url && wget $url2 > /dev/null 2>&1 & 그러나 그 명령은 작동하지 않았습니다. 이 목적을 위해 어떤 명령을 사용해야합니까?
나는 이것에 대해 약간의 단점을 얻을 것으로 기대하지만 어디서나 답을 찾을 수는 없다. 너무 분명한 것 같습니다. 때로는 bash 터미널에 잘못된 명령을 입력하면 커서가 오류 나 아무것도없이 다음 줄로 넘어갑니다. 내가 뭘 잘못했는지 알 수 없습니다. 프로그램에 갇혀있는 것 같습니다. 재연 : $ tidy 나 : "죄송합니다. 내가 입력하려는 것이 …
사이트에서이 질문을 아직 찾지 못했다는 것에 놀랐습니다. 그래서 오늘 $새로운 사용자로 로그인 한 후 나타났습니다. 메인 사용자의 프롬프트가로 시작하기 때문에 예기치 않은 결과였습니다 username@computername:~$. 그렇다면이 다른 쉘에서 bash로 어떻게 전환합니까?
my_file.txt내용이 문자열 인 파일 이 있습니다 Hello. 내용을 명령으로 echo어떻게 리디렉션 할 수 있습니까? 내가 명령을 알고 less, cat, more...하지만 난 그것을 할 필요 echo. 나는 이것을 시도했다 : $ cat my_file.txt | echo 또한 이것 : $ echo < my_file.txt 그러나 두 경우 모두 my_file.txt의 내용이 아닌 stdout에 공백으로 …
FreeBSD를 실행하는 공유 호스팅 인 서버용 셸 스크립트를 작성하고 있습니다. 또한 Linux를 실행하는 PC에서 로컬로 테스트하고 싶습니다. 따라서 이식 가능한 방식으로 작성하려고하지만 sed그렇게 할 방법이 없습니다. 내 웹 사이트의 일부는 생성 된 정적 HTML 파일을 사용하며이 sed 행은 각 재생성 후에 올바른 DOCTYPE을 삽입합니다. sed -i '1s/^/<!DOCTYPE html> \n/' ${file_name.html} …
나는 그것이 무엇 인줄 안다 program > /dev/null 2>&1 그렇습니다. 이것은 출력을 리디렉션 /dev/null및 2>&1출력이 전송되는 동일한 위치의 에러 출력을 리디렉션하는 것을 의미한다. 내 문제는 그것을 기억하지 못하기 때문에 항상 Google에 저장해야한다는 것입니다. 그래서, 시도 &2>1, 1>2&, 1>&2내가 구글까지 ... 나는 모든 조합을 시도 ... 쉽게 기억하는 비결은 무엇입니까?
사용자가 source실행하지 않고 쉘 스크립트를 정의하고 있습니다. 예를 들어 파일 확장자를 통해 이러한 경우를 사용자에게 암시하는 기존의 또는 지능적인 방법이 있습니까? 파일 자체에 작성할 수있는 셸 코드가 있습니까? 그러면 소스 대신 실행되는 경우 메시지를 표시하고 종료되어 사용자가이 명백한 실수를 피할 수 있도록 도와 줄 수 있습니까?