저는 이 문제 때문에 스크립팅에 정말 매달렸습니다. 매개변수를 받아들이고 결과를 제공하려면 스크립트가 필요하지만 공백이 있으므로 첫 번째 단어만 표시됩니다. 예를 들어.
cat open.sh
echo My name is $1
export start=`date +"%b %d %k:%M:%S %Y"`
[oracle@spiderman scripts]echo $start
Jul 01 3:03:18 2016
[oracle@spiderman scripts]$sh open.sh `echo $start`
The time is Jul
출력이 필요합니다.The time is Jul 01 3:03:18 2016.
동일한 출력을 다른 복잡한 스크립트에 전달해야 합니다.
답변1
$()
다음과 같은 명령 대체를 사용해야 합니다 .date
export start=$(date +"%b %d %k:%M:%S %Y")
export end=$(date +"%b %d %k:%M:%S %Y")
그리고 open.sh
변화
echo The time is "$1" and end time is "$2"
(참고: 항상 변수를 인용하십시오.이것)
다음과 같이 인용된 매개변수를 사용하여 스크립트를 실행합니다.
$ sh open.sh "$start" "$end"
The time is Jul 01 20:24:03 2016 and end time is Jul 01 22:19:25 2016