반응형

bash 6

비동기 셸 명령

비동기 셸 명령 셸 스크립트를 사용하여 명령을 시작하려고 합니다.나는 그것이 끝나든/언제/어떻게/왜 끝나든 상관하지 않습니다.프로세스가 시작되고 실행되기를 원하지만 즉시 제 껍질로 돌아갈 수 있기를 원합니다.스크립트를 백그라운드에서 실행하면 됩니다. $ myscript & 참고로 이것은 다음과 다릅니다.&당신이 원하는 것을 하지 못할 수도 있습니다.다들 잊어버렸어요disown다음은 요약입니다. &작업을 백그라운드에서 수행합니다. 입력을 읽으려는 시도를 차단합니다. 셸이 완료될 때까지 기다리지 않도록 합니다. disown셸의 작업 제어에서 프로세스를 제거하지만 터미널에 연결된 상태로 둡니다. 그 결과 중 하나는 셸이 그것을 보내지 않는다는 것입니다.SIGHUP(쉘이 수신하는 경우SIGHUP그것은 또한 보냅..

programing 2023.04.28

sudo에서 호출한 Bash 스크립트에서 사용자 식별

sudo에서 호출한 Bash 스크립트에서 사용자 식별 스크립트를 생성하는 경우/root/bin/whoami.sh포함: #!/bin/bash whoami 그리고 이 스크립트는 적절하게 구성된 sudo를 가진 사용자에 의해 호출됩니다. root 스크립트에서 실제 사용자를 얻는 빠른 방법이 있습니까? 아니면 이 사용자 이름을 따라 전달되는 매개 변수에 의존해야 합니까?$SUDO_USER를 사용하는 경우 작동하지 않습니다.sudo su -. 또한 여러 번의 확인이 필요합니다.$USER == 'root'그럼 겟$SUDO_USER. 명령 대신whoami사용하다who am i이것은 실행됩니다.who현재 세션에 대해 필터링된 명령입니다.필요 이상의 정보를 제공합니다.사용자만 사용하려면 다음 작업을 수행합니다. who ..

programing 2023.04.28

Bash 셸 스크립트의 모든 인수 전파

Bash 셸 스크립트의 모든 인수 전파 다른 스크립트를 호출하는 매우 간단한 스크립트를 작성하고 있으며 현재 스크립트에서 실행 중인 스크립트로 파라미터를 전파해야 합니다. 예를 들어, 제 스크립트 이름은foo.sh및 콜bar.sh. foo.sh: bar $1 $2 $3 $4 각 파라미터를 명시적으로 지정하지 않고 어떻게 하면 좋을까요?사용하다"$@"평범하지 않고$@파라미터가 동일하게 전달되기를 원하는 경우. 다음 사항을 확인합니다. $ cat no_quotes.sh #!/bin/bash echo_args.sh $@ $ cat quotes.sh #!/bin/bash echo_args.sh "$@" $ cat echo_args.sh #!/bin/bash echo Received: $1 echo Receive..

programing 2023.04.23

특정 확장자를 가진 모든 파일을 루프합니다.

특정 확장자를 가진 모든 파일을 루프합니다. for i in $(ls);do if [ $i = '*.java' ];then echo "I do something with the file $i" fi done 현재 폴더의 각 파일을 루프하여 특정 확장자와 일치하는지 확인합니다.위의 코드가 작동하지 않는데, 왜 그런지 아세요? 화려한 트릭은 필요 없습니다. for i in *.java; do [ -f "$i" ] || break ... done 하는 파일이 루프는 파일명을 않고 됩니다.*.java. »bash 이와 유사한 하는 셸), (또는 셸), 를할 수 .nullglob루프의 본문을 입력하지 않고 단순히 실패한 일치를 무시합니다. shopt -s nullglob for i in *.java; do .....

programing 2023.04.19

텍스트 파일에서 ${} 자리 표시자를 바꾸려면 어떻게 해야 합니까?

텍스트 파일에서 ${} 자리 표시자를 바꾸려면 어떻게 해야 합니까? 파일의 을 MySQL에 .MySQL은 "템플릿"입니다.MySQL은 "템플릿" 에는 "" "MySQL" "MySQL" "MySQL" "MySQL" "MySQL" 등의 .${dbName}표준 유틸리티는 입니까?이러한 인스턴스를 대체하고 출력을 표준 출력으로 덤프하기 위한 명령줄 유틸리티는 무엇입니까? 입력 파일은 안전한 것으로 간주되지만 잘못된 대체 정의가 존재할 수 있습니다.교환을 실행하면 의도하지 않은 코드 실행을 방지할 수 있습니다.갱신하다 다음은 $VAR 또는 ${VAR}와 같은 변수만 대체하고 간략하게 설명하는 유사한 질문에 대한 yottatsa의 해결 방법입니다. i=32 word=foo envsubst < template.txt..

programing 2023.04.19

vim shell 명령 내에서 .bashrc 별칭을 사용하려면 어떻게 해야 합니까? (:!...)

vim shell 명령 내에서 .bashrc 별칭을 사용하려면 어떻게 해야 합니까? (:!...) 저는 mac에서 bash를 사용하는데, 에일리어스 중 하나가 이렇습니다. alias gitlog='git --no-pager log -n 20 --pretty=format:%h%x09%an%x09%ad%x09%s --date=short --no-merges' 하지만 내가 할 때 :! gitlog 나는 이해한다 /bin/bash: gitlog: command not found 이러한 에일리어스를 .gitconfig에 추가할 수 있습니다. [alias] co = checkout st = status ci = commit br = branch df = diff 단, 모든 bash 에일리어스를 .gitconfig에..

programing 2023.04.19
반응형