Bash 쉘 스크립팅에서 다음 두 문장의 차이점은 무엇입니까? 1.) if [ -z "$1" ] 2.) if [ "$1" = "" ] 필자는 일부 스크립트에서 두 번째 스크립트를 작성하는 것을 발견했지만 여기서 사용 -z하면 동일한 결과를 얻습니다. 두 번째 것을 사용하는 데 문제가 있다면 첫 번째 것이 조금 나아 보인다는 것을 …
다음과 같은 문자열이있는 경우 : "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/' 불행히도 나는 이것을 수정하기 위해 정규 표현식에 익숙하지 않습니다.
특정 폴더에서 모든 * .flac를 * .mp3로 변환하고 싶습니다. 이것은 내가 시도했지만 작동하지 않습니다. # change to the home directory cd ~/music # convert all *.flac files ffmpeg -i *.flac -acodec libmp3lame *.mp3 # (optional: check whether there are any errors printed on the terminal) sleep 60 내 목표를 얻는 …
파일을 반복 할 때 두 가지 방법이 있습니다. - for루프를 사용하십시오 : for f in *; do echo "$f" done 사용 find: find * -prune | while read f; do echo "$f" done 이 두 루프가 동일한 파일 목록을 찾을 것이라고 가정하면 성능 과 처리 에서 두 옵션의 차이점은 무엇 …
내부의 문자열을 비교 if하려면 이중 대괄호를 사용해야합니다. 일부 책에서는 비교를 통해 수행 할 수 있다고 말합니다 =. 그러나 그것은 또한 작동합니다 ==. #!/bin/bash a="hello" b="world" if [[ $a == $b ]];then echo "equal" fi 비교할 때 =와 ==비교할 때 차이가 있습니까?
패턴이있는 줄과 그 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 -- …
나는 while루프가 무엇인지 안다 . 그러나 나는 그것이 작동하는 것을 보았습니다. while [condition] while ![condition] while TRUE (infinite loop) 이후의 진술 while은 TRUE또는 중 하나 여야합니다 FALSE. 라는 쉘 내장 명령이 :있습니다. 그것은 아무것도하지 않는 더미 명령으로 설명되어 있지만 TRUE또는 될 수 있더라도 여기에서 동일한 지 여부는 알 수 없습니다 …
의사 결정 구조에 대해 배우고 있으며 다음 코드를 발견했습니다. if [ -f ./myfile ] then cat ./myfile else cat /home/user/myfile fi [ -f ./myfile ] && cat ./myfile || cat /home/user/myfile 둘 다 동일하게 동작합니다. 한 가지 방법을 다른 방법으로 사용하면 어떤 이점이 있습니까?
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! …
나는 충격을 받았다. 내 /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 이것은 …
변수가 비어 있는지 테스트하기 위해 많은 다른 쉘에서 다음 기술을 여러 번 사용하는 것을 보았습니다. if [ "x$1" = "x" ]; then # Variable is empty fi 보다 표준적인 것보다 이것을 사용하면 어떤 이점이 if [ -z "$1" ]있습니까? 이식성 문제 일 수 있습니까?