«shell-script» 태그된 질문

쉘 스크립트, 쉘로 해석되는 실행 파일 (bash, zsh 등)에 대한 질문.


1
Bash에서 [-z "$ 1"]과 [ "$ 1"= ""]가 같은 경우?
Bash 쉘 스크립팅에서 다음 두 문장의 차이점은 무엇입니까? 1.) if [ -z "$1" ] 2.) if [ "$1" = "" ] 필자는 일부 스크립트에서 두 번째 스크립트를 작성하는 것을 발견했지만 여기서 사용 -z하면 동일한 결과를 얻습니다. 두 번째 것을 사용하는 데 문제가 있다면 첫 번째 것이 조금 나아 보인다는 것을 …

7
밑줄을 PascalCase, 즉 UpperCamelCase로 변환
다음과 같은 문자열이있는 경우 : "this_is_the_string" bash 스크립트 내부에서 PascalCase, 즉 UpperCamelCase로 변환하여 다음과 같이 표시하려고합니다. "ThisIsTheString" lowerCamelCase로 변환하는 방법은 다음과 같습니다. "this_is_the_string" | sed -r 's/([a-z]+)_([a-z])([a-z]+)/\1\U\2\L\3/' 불행히도 나는 이것을 수정하기 위해 정규 표현식에 익숙하지 않습니다.


9
Bash에서 vs. 찾기
파일을 반복 할 때 두 가지 방법이 있습니다. - for루프를 사용하십시오 : for f in *; do echo "$f" done 사용 find: find * -prune | while read f; do echo "$f" done 이 두 루프가 동일한 파일 목록을 찾을 것이라고 가정하면 성능 과 처리 에서 두 옵션의 차이점은 무엇 …


5
sed (또는 awk)로 패턴 위의 줄 범위 삭제
패턴이있는 줄과 그 banana뒤에 2 줄을 제거하는 다음 코드가 있습니다. sed '/banana/I,+2 d' file 여태까지는 그런대로 잘됐다! 그러나 전에 2 줄을 제거해야하지만 banana“빼기 부호”또는 무엇이든 ( grep -v -B2 banana file해야 할 일과 비슷 하지만) 할 수는 없습니다. teresaejunior@localhost ~ > LC_ALL=C sed '-2,/banana/I d' file sed: invalid option -- …


3
“while :;”은 무슨 뜻입니까?
나는 while루프가 무엇인지 안다 . 그러나 나는 그것이 작동하는 것을 보았습니다. while [condition] while ![condition] while TRUE (infinite loop) 이후의 진술 while은 TRUE또는 중 하나 여야합니다 FALSE. 라는 쉘 내장 명령이 :있습니다. 그것은 아무것도하지 않는 더미 명령으로 설명되어 있지만 TRUE또는 될 수 있더라도 여기에서 동일한 지 여부는 알 수 없습니다 …


2
`set -eu`를 사용할 때 EXIT 및 ERR 트랩의 올바른 동작
ERR 및 EXIT 트랩과 함께 set -e( errexit), set -u( nounset)를 사용할 때 이상한 동작이 관찰됩니다 . 그것들은 관련이있는 것처럼 보이므로, 하나의 질문에 넣는 것이 합리적입니다. 1) set -uERR 트랩을 트리거하지 않습니다 암호: #!/bin/bash trap 'echo "ERR (rc: $?)"' ERR set -u echo ${UNSET_VAR} 예상 : ERR 트랩이 호출됩니다. RC! …

2
sudo : ./script.sh를 실행할 수 없습니다 : 해당 파일 또는 디렉토리가 없습니다.
나는 충격을 받았다. 내 /home디렉토리에 실행 가능한 스크립트 가 있습니다. [user@server ~]$ ll total 4 -rwx------ 1 user user 2608 Jul 15 18:23 qa.sh 그러나 그것을 실행하려고하면 sudo찾을 수 없다고 말합니다. [user@server ~]$ sudo ./qa.sh [sudo] password for user: sudo: unable to execute ./qa.sh: No such file or directory 이것은 …




당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.