2014-03-12 5 views
0

인수를 통해 문자열 전달이 포함 된 줄을 삭제하려고하는데 작동하지 않습니다. 나는 OSX 10.9를 사용 중이다.문자열이 포함 된 줄 삭제

sed -i '' '/$2/d' /etc/hosts

그 일을해야하지? 파일을 그대로 유지합니다. 아무것도 바뀌지 않습니다. 내 명령은 sudo hosts remove junior.dev입니다.

#!/bin/sh 

let $# || { echo No arguments supplied. Example: hosts add 192.168.2.2 mysite.dev; exit 1; } 

if [ $1 = "add" ]; then 
    if [ -z "$2" ] || [ -z "$3" ]; then 
     echo "You must supply an IP address and a host name." 
     exit 1; 
    else 
     echo "$2\t$3" >> /etc/hosts 
     echo "Done." 
    fi 
fi 

if [ $1 = "remove" ]; then 
    if [ -z "$2" ]; then 
     echo "You must supply a host name." 
     exit 1; 
    else 
     sed -i '' '/$2/d' /etc/hosts 
     echo "Done." 
    fi 
fi 

답변

2

사용 따옴표 " : 여기

내 쉘 스크립트입니다

$ echo "$foo" 
> bar 
$ echo '$foo' 
> $foo 

작은 따옴표 '를 사용하는 경우, 변수가 확장됩니다 따옴표 "를 사용하여, 그들은 확장되지 않습니다.

관련 문제