실행 가능한 스크립트를 작성하는 코드
touch script.sh && echo "echo 'Hello World'" > script.sh && sudo chmod +x script.sh
답변
전체 touch
명령을 생략하고 사용할 필요는 없습니다 sudo
. 명령 행을 더 짧게하려면 bash
내역 확장 을 사용하여 파일 이름을 두 번째로 저장하고 불필요한 공백을 생략 할 수 있습니다.
echo "echo 'Hello World'" >script.sh&&chmod +x !#:3
히스토리 확장은 !#:3
현재 명령 행의 네 번째 단어 (여기서는 filename)로 대체 됩니다 script.sh
. 물론 첫 번째 명령을 수정하는 경우 다음과 같이 조정해야합니다.
>script.sh echo "echo 'Hello World'"&&chmod +x !#:1
유효한 스크립트에는 shebang이 필요합니다 .
>script.sh echo -e "#!/bin/bash\necho 'Hello World'"&&chmod +x !#:1
이 일련의 명령이 더 자주 필요한 경우 함수 정의를 권장 합니다 . 이렇게하면 함수 이름 만 입력하면됩니다. 더 길지만 비슷하게 적용 할 수있는 방법은 파일 이름을 보유한 변수를 사용하는 것입니다.
f=script.sh;>$f echo "echo 'Hello World'"&&chmod +x $f
파일 이름에 특수 문자가 포함되어 있으면 올바르게 인용하는 것을 잊지 마십시오 .
답변
install
명령 (GNU의 일부와 함께로 coreutils cp
, mv
, rm
또한 소유권과 권한을 설정하고 필요에 따라 부모 디렉토리를 작성하는 동안 파일을 복사 할 수 있습니다, 등). 기본적으로 새 파일을 실행 가능하게 만듭니다. ‘ -
‘을 이해하지 못하지만 /dev/stdin
대신 사용할 수 있습니다.
install /dev/stdin script.sh <<< "echo Hello World"
위 의 내용은 stdin에 텍스트를 제공하기 위해 ‘ here string ‘을 사용합니다.이 텍스트는 배관하는 것보다 약간 짧습니다. echo
특별한 의미를 가진 문자가 포함되어 있지 않으면 인용 할 필요가 없습니다.
답변
다음 cat
과 같은 작업 에 사용하는 것을 선호합니다 .
cat > script.sh && chmod +x script.sh
#!/bin/sh
echo 'Hello World'
Enter
Ctrl+D
답변
전체 chmod를 생략하고 에코 전에 umask를 대신 사용할 수도 있습니다. 몇 바이트를 절약해야합니다. Shebang은 모든 쉘 (bourne 및 C)에서 이해하는 명령을 사용하는 한 선택 사항입니다.