링크 ux 연습 - 시스템 에 이 사용자 가 존재 하 는 지 확인 합 니 다. 인쇄 사용자 가 존재 하지 않 으 면 이 사용 자 를 추가 하지 않 습 니 다.

7160 단어 임 베 디 드
사용자 에 게 사용자 이름 을 입력 하 라 고 요구 합 니 다. 시스템 에 이 사용자 가 존재 하 는 지, 인쇄 사용자 가 존재 하지 않 으 면 이 사용 자 를 추가 하지 않 습 니 다.
방법
##创建shell文件

vim shell.sh

##读取命令:-p 参数,在read命令行中直接指定一个提示,即在输入前打印提示信息

read -p "please input a username:" MYUSER

##if...then...fi句型
##设置:为切割符,-f表示第几列,这里取第一列
##  | :通道符,上一条命令的输出,作为下一条命令参数
if cut -d: -f1 |grep "^$MYUSER$" /etc/passwd &>/dev/null
then
MYSHELL=`grep "^MYUSER" /etc/passwd | cut -d: -f7 `
#echo:打印变量的值或者给定的字符串
echo "${MYUSER}'s shell is $MYSHELL"
else
echo "$MYUSER is not exist"
fi

read 명령 어 사용법:
- a: 변수, 이 변 수 는 배열 로 여 겨 지고 값 을 부여 합 니 다. 기본 값 은 빈 칸 을 분할 문자 로 합 니 다. -d: 표지 부 호 는 사실 그 후의 첫 번 째 문자 만 유용 하고 끝 표지 로 서 -p: 알림 정보, 즉 입력 하기 전에 알림 정 보 를 인쇄 합 니 다. -e: 입력 할 때 명령 보완 기능 을 사용 할 수 있 습 니 다. -n: 숫자, 입력 텍스트 의 길 이 를 정의 하여 실 용적 입 니 다. -r: 차단\, 이 옵션 이 없 으 면\는 전의 문자 로 서 있 으 면\는 정상 적 인 문자 입 니 다. -s: 조용 한 모드 입 니 다. 문 자 를 입력 할 때 화면 에 표시 되 지 않 습 니 다. 예 를 들 어 login 시 비밀 번 호 를 입력 하 십시오. -t: 초, 입력 문자 의 대기 시간 을 정의 합 니 다. -u: fd 와 파일 설명자 에서 읽 습 니 다. 이 파일 설명 자 는 exec 에서 새로 열 수 있 습 니 다.
cut 명령 어 사용법:
- b: 바이트 (bytes) 단위 로 분할 합 니 다. -c: 문자 (characters) 단위 로 분할 합 니 다. -d: 사용자 정의 구분자 (delimiter), 기본 값 은 탭 문자 입 니 다. -f: d 와 함께 사용 하고 d 가 지정 한 구분자 에 따라 분할 한 후 어느 영역 (fields) 을 표시 할 지 지정 합 니 다. -다 중 바이트 문자 분할 취소.- b 로고 와 함께 만 사용 합 니 다.문자 의 마지막 바이트 가 - b 로고 의 List 매개 변수 가 표시 하 는 범위 안에 떨 어 지면 이 문 자 는 기 록 됩 니 다.그렇지 않 으 면 이 문 자 는 제 외 됩 니 다.complement: 선택 한 내용 을 보충 합 니 다. 즉, 반 선택 입 니 다.
예 를 들 면:
cut -d '/' -f3 logs.txt    #设置/为切割符,-f 表示第几列,这里取第三列

링크 ux 의 &, | 명령
& &: 이전 명령 이 성공 (0 으로 돌아 가기) 다음 명령 이 실 행 됩 니 다.예 를 들 어 date & & echo 1 은 1 을 인쇄 하고 data & echo 2 는 2 를 인쇄 하지 않 습 니 다.
| | | | 왼쪽 실행 에 실패 하면 & & 오른쪽 을 실행 합 니 다.
grep 명령
- E: 확장 (Extend) 의 정규 표현 식 을 엽 니 다. -i: 대소 문자 무시 (ignore case) -v: 반대로 (invert) 일치 하 는 것 만 인쇄 하고 일치 하 는 것 은 인쇄 하지 않 습 니 다. -n: 줄 번호 표시 - w: 일치 하 는 텍스트 는 단어 일 뿐 단어의 일부분 이 아 닙 니 다. 예 를 들 어 텍스트 에 liker 가 있 고 like 만 찾 으 면 - w 옵션 을 사용 하여 liker - c 와 일치 하지 않도록 할 수 있 습 니 다. 일치 하 는 내용 을 표시 하 는 것 이 아니 라 모두 몇 줄 이 일치 하 는 지 표시 합 니 다.- cv 옵션 을 동시에 사용 하면 몇 줄 이 일치 하지 않 는 지 표시 합 니 다. -o: 패턴 에 일치 하 는 문자열 만 표시 합 니 다.color: 일치 하 는 내용 을 색상 으로 강조 합 니 다. -A n: 일치 하 는 문자열 이 있 는 줄 과 그 뒤의 n 줄 을 표시 합 니 다. after - B n: 일치 하 는 문자열 이 있 는 줄 과 그 앞 n 줄 을 표시 합 니 다. before - C n: 일치 하 는 문자열 이 있 는 줄 과 그 앞 뒤 n 줄, context 를 표시 합 니 다.
방법 2:
#!/bin/sh  
#定义函数 
 
search(){  
#判断输入值是否为空,如果为空,则函数结束,返回值1  
# !非  -z 在if里的意思是 空  $1 第一个参数
[ -z $1 ] && return 1  

#判断用户是否存在,存在则显示要求,不存在,函数结束,返回值1  
if id $1 &> /dev/null 
then 
    echo "$1 UID is `id -u $1`"
    echo "$1 Shell is `grep "^$1:" /etc/passwd \
    |cut -d':' -f7 `"  
else
    return 1  
fi  
}  
#循环执行,以符合题目要求  
while :;do
read -p "Please input A username[quit to exit]: " User 
    if [ $User = quit ];then 
        exit 0  
    else
        search $User 
        Res=$?  
        [ $Res -eq 1 ] && echo "No such $User."
    fi  
done

셸 스 크 립 트 시작\#!/bin/sh
현재 연구 개발 하여 테스트 하 는 셸 스 크 립 트 에는 주로 다음 과 같은 두 가지 방식 이 있다. (1)\#!/bin/sh (2) #!/bin/bash
문자열 변수 표현 식
if [$a = $b]: string 1 이 string 2 와 같 으 면 진짜 입 니 다.문자열 은 할당 번 호 를 등호 if [$string 1! = $string 2] 로 사용 할 수 있 습 니 다. string 1 이 string 2 와 같 지 않 으 면 진짜 if [- n $string]: string 이 비어 있 지 않 으 면 0 (true) if [- z $string] 로 돌아 갑 니 다. string 이 비어 있 으 면 진짜 if [$sting]: string 이 비어 있 지 않 으 면 0 (n 과 유사) 으로 돌아 갑 니 다.

좋은 웹페이지 즐겨찾기