LINUX 中,想写一个函数,进行多行注释

LINUX 中,想写一个函数,进行多行注释,第1张

C/C++本来就支持多行注释的啊,将注释段包含在 /* */ 之间即可。

例子:

/*

line 1

line 2

*/

或者:

/* line 1

line 2

*/

#!/bin/bash

#filename:simple-useradd.sh

##(1)只使用一个参数,其他情况在退出后打印一条提示信息

## 这个要求有点不明确,这是一个根据提示来执行的脚本,正常应该是不用传递参数的。

if [ $# -ne 0 ]

then

    echo "Usage: $0"

    exit 1

fi

##(2)检查/etc/passwd文件,屏幕输出UID的消息

##定义函数DisplayUID

function DisplayUID(){

    cat /etc/passwd

}

##(3)检查/etc/group文件,屏幕输出GID信息

##定义函数DisplayGID

function DisplayGID(){

    cat /etc/passwd

}

##(4)用户从键盘输入信息--新用户的描述、使用shell、UID、GID, 并把这些信息分别添加到/etc/passwd、/etc/group、/etc/shadow中, 创建用户的主目录/home/***---***为用户名

##定义函数InputNewUser

function InputNewUser(){

    echo "---Input new user  Menu"

    read -p "username:" INusername

    read -p "shell:" INshell

    read -p "UID:" INUID

    read -p "GID:" INGID

    echo "开始在/etc/passwd添加帐号信息"

    echo "开始在/etc/group添加帐号信息"

    echo "开始在/etc/shadow添加帐号信息"

    echo "创建用户目录…………"

    useradd -s $INshell -u $INUID -g $INGID -m $INusername   ##useradd用来根据输入,创建新用户

    if [ $? -ne 0 ]  #对添加结果进行判断

    then

        echo "添加用户出错了"

        exit 1

    fi

}

##(5)设置新用户的密码

##定义SetPassWord

function SetPassWord(){

    local INusername

    echo "SetPassWord:"

    read -p "username:" INusername

    passwd $INusername

}

while true  ## 进入菜单循环

do

    cat<<-EOF  ## 打印菜单

        1------------ Display UID

        2------------ Display GID

        3------------ Input new user

        4------------ Set password

        "按Qq退出"

EOF

    read -p "choice:???" choice  #接收用户输入

    case $choice in  # 根据用户选择来执行相应的函数

        1) DisplayUID

        2) DisplayGID

        3) InputNewUser

        4) SetPassWord

        [Qq]) echo "bye "exit 0

    esac

done

这个脚本还有如下问题:

1、”只使用一个参数,其他情况在退出后打印一条提示信息”这个需求不明确,不知道是啥意思,正常情况下,像这种脚本都是不用位置参数的,也可能我不理解题目的意思;

2、脚本还不够严谨,有一些异常没有捕获也没有重定向,不过如果你是交作业的话就问题不大咯。

function changename(){ -- 俺是淫荡的函数changename(改名字)

if [ -z $2 ]then -- 如果第二个参数为空

echo "lack function parameter " -- 告诉您了:参数不够

return -1 -- 返回个-1给您

fi -- 邪恶的判断结束了

mv -f $1 $2 -- 别说啥了,把文件1改名成文件2吧

return 0 -- 返回个0给您

} -- 淫荡的函数changename结束了

function change() -- 俺是第二淫荡的函数change(改变)

{ -- 函数开始咯

ofileName= # old file name -- 有个变量ofileName

nfileName= #new file name -- 有个变量nfileName

ls -l >a.txt -- 把当前目录下的文件列出来写到文件a.txt

index=0 -- 俺是变量index,初始值是0

while read line -- 结合done<a.txt,俺是说俺要开始从a.txt一行一行读到变量line里了

do -- 开始吧!

index=`expr ${index} + 1` -- 开始计数吧,完事得靠这个考勤挣工资呢

if [ ${index} -eq 1 ] then -- 如果是第一个文件的话

continue # ignore the first line of 'ls -l' -- 继续,啥也不干

fi -- 邪恶的判断又结束了

a=($line) -- 把line这个变量里边的东西拆了,放到数组a里边

ofileName=${a[8]} -- 把a的第8个元素给ofileName

pos=`expr index ${ofileName} "."` -- ofileName里有木有.啊?在啥位置?请告诉pos

if [ ${pos} -eq 0 ] then -- 如果pos是0,也就是说木点.!!!

nfileName="${ofileName}[${a[3]}]" -- 把ofileName和a的第三个元素拼吧拼吧给nfileName(原文件名加上[文件拥有者的名字])

else -- 或者

owner="[${a[3]}]." -- owner是a的第三个元素加个.

nfileName="${a[8]/./${owner}} " -- 把a的第8个元素里边的点.换成owner这个变量值

fi -- 邪恶的判断再次结束了

echo "nfilename=${nfileName}" -- 告诉你nfilename=变量nfileName的值

changename ${ofileName} ${nfileName} -- 叫changename函数起床干活,参数一时ofileName,参数二十nfileName

done<a.txt -- 参见N行前的解释

} -- 淫荡的函数change结束了


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7390093.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-05
下一篇2023-04-05

发表评论

登录后才能评论

评论列表(0条)

    保存