math.sh
그래서 숫자를 인수로 받아들이고 숫자를 더하고 빼는 것을 에코하는 쉘 스크립트가 있습니다 .
#!/bin/bash
echo "Add: "$(($1 + 1))
echo "Subtract : "$(($1 - 1))
내가 가지고 있는 또 다른 쉘 스크립트는 execute.sh
기본적으로 math.sh와 텍스트 파일을 인수로 사용하고 math.sh의 출력을 텍스트 파일에 씁니다.
#! /bin/sh
echo $1 > $2
그러나 둘 다 동일한 줄의 텍스트 파일에 출력을 반영합니다. Add: $(($1 ++))
Subtract : $(($1 --))
다른 줄에서 사용해야 하는 경우 예를 들면 다음과 같습니다.
추가: $(($1++))
빼기: $(($1 --))
math.sh를 편집하지 않고 어떻게 이 작업을 수행할 수 있나요? 내 Execution.sh는 math.sh뿐만 아니라 모든 쉘 스크립트를 별도의 줄에 텍스트 파일로 출력할 수 있어야 하기 때문입니다.
답변1
문제는 따옴표가 누락된 것입니다. 다음과 같아야 합니다.
#!/bin/sh
echo "$1" > "$2"
그렇지 않으면 bash가 공백, 줄 바꿈, 별표(*) 등과 같은 변수 내의 특수 문자를 처리하기 때문에 이것이 필요합니다.
이 경우 개행 문자는 인수를 여러 인수로 나누어 echo
공백으로 연결하게 합니다.
이는 첫 번째 인수 자체를 파일에 인쇄합니다.
인쇄하려면콘텐츠여러분 중 일부는 $1
다음과 같이 할 것입니다.
#!/bin/sh
cat "$1" > "$2"
인쇄산출여러분 중 일부는 $1
다음과 같이 할 것입니다.
#!/bin/sh
./math.sh "$1" > "$2"
변수 변경 사항이 현재 스크립트에 반영되도록 하려면 다음을 사용할 수 있습니다.
#!/bin/sh
. "$1" > "$2"