원격 컴퓨터에 SSH를 통해 연결하고 adduser 명령을 실행하려는 bash 스크립트를 작성 중입니다. 이것은 작동하지 않습니다. 아래 코드를 실행하면 adduser에 대한 --help 텍스트만 표시됩니다.
ssh [email protected] 'useradd $username; mkdir /home/$username;' || echo "Unable to create user on pizza.cs.fredonia.edu";;
우분투14.01
답변1
큰따옴표를 사용해 보셨나요? 작은따옴표 내에서 BASH는 $username 변수를 확장하지 않습니다.
예를 들어 $username=bob인 경우 이 명령은 변수를 확장합니다.
ssh user@hostname "useradd $username; mkdir /home/$username;"
인용된 섹션은 다음으로 확장됩니다.
useradd bob; mkdir /home/bob;
그러나 다음과 같이 작은 따옴표를 사용하는 경우:
ssh user@hostname 'useradd $username; mkdir /home/$username;'
그러면 인용된 부분은 변경되지 않습니다. 이는 다음과 같이 해석됩니다.
useradd $username; mkdir /home/$username;
그런데 마지막에 $username 뒤에는 ;가 필요하지 않습니다.