Results 1 to 4 of 4
  1. #1
    Join Date
    Jan 2012
    Posts
    3

    Smile Unanswered: Shell Script Tasks

    Shell Script Tasks

    This is a homework assignment to create the below described shell scripts.
    I need the scripts so I can complete my university education.
    If you would like to help me and can create these scripts, please send them in a zip or rar file to my email: technologicbg at yahoo.com

    The task is attached as well in a doc file. Thank you.

    Task 1:
    Compile a script named zad1.sh, which script receives as parameters a list of users (usernames). When executed, the script reads text from the standard input and sends it to those users in the list who have started a session and working in it.

    Hint:
    - You can use write for sending
    - If we want to send a message to users, i.e. to the users unix, student1 and student2, the script can be started as below:

    $ ./zad1.sh unix student1 student2
    It reads from the standard input, checks which users have been logged in (i.e. unix and student2) and sends them what the script has read.


    Task2:
    Compile a script zad2.sh, which shows on the screen the files in the current directory, grouped in three columns.

    Tasks3:
    Compile a script zad3.sh, which would ask for a username and show this username on the screen and with it the HOME directory of this user. If the user does not exist, a proper message has to be generated.

    Task4:
    Running
    $ ll 1> -
    a file is being created: -
    $ ll
    -rw-rw-r-- 1 user1 users 35 Nov 30 15:41 -

    How can we see the content of the created file "-"? Compile a script zad4.sh with the proper command.

    Task5:
    Below is the content of the file /var/log/messages

    ...
    Nov 28 11:30:58 x-wing mon[2921]: no monitor found while trying to run [http.monitor]
    Nov 28 11:36:10 x-wing mon[2921]: no monitor found while trying to run [ping.monitor]
    Nov 28 11:36:18 x-wing mon[2921]: no monitor found while trying to run [telnet.monitor]
    ...
    The multiple dots () are lines with unknown content, which follow the chronological order.

    Compile a script zad5.sh, which shows the messages from the last minute (the messages received within the same minute in which the script is being executed).

    Example: If the date at the moment when the script was run is November 28, 11:36 AM, we would have:
    Nov 28 11:36:10 x-wing mon[2921]: no monitor found while trying to run [ping.monitor]
    Nov 28 11:36:18 x-wing mon[2921]: no monitor found while trying to run [telnet.monitor]
    ...

    PS: If the script is named zad5.sh, the answer can be tested by:
    $ ./zad5_test.sh ; ./zad5.sh
    where zad5_test.sh is:
    $ cat zad5_test.sh
    # Testing the task for generating the messages from the last minute
    # The script adds to the file messages from the last minute
    echo `date +%b" "%d" "%H":"%M:%S` Test message >> /var/log/messages

    Task6:
    - Compile a script with name zad6.sh, which shows its name (the name of the executed file).
    Example:
    Assume the script is called zad6.sh and is located in the home directory of user unix.
    $ ./zad6.sh
    Hi,I am a script!
    My name is: zad6.sh

    - If the script's name is changed, the new name has to be shown, i.e.:
    mv zad6.sh zad6a.sh
    $ ./zad6a.sh
    Hi,I am a script!
    My name is: zad6a.sh

    - The script has to generate its own name, regardless of how the script is started - by relative or absolute name, regardless of the current directory, thus it has to remove the directory and the suffix from the filename.

    Example:
    $ /home/unix/zad6.sh
    Hi,I am a script!
    My name is: zad6.sh
    $ cd /home/unix
    $ ./zad6.sh
    Hi,I am a script!
    My name is: zad6.sh
    $ cd /home
    $ unix/zad6.sh
    Hi,I am a script!
    My name is: zad6.sh

    Hint:
    - Some commands that can be used: cut, wc, tr
    - There is a command for removing a directory/suffix from a filename - basename, which can be used in case you cannot go without it.

    Task7:
    Script (zad7.sh) receives one argument as a parameter - string. If a subdirectory of the user's HOME directory does not exist (the user who launches the script), with a name that is the same as the given string, the script created it, copies into it all common files from the current directory, that are available to read and generates on the standard output the number of the rest.

    Task8:
    a) Compile a script zad8a.sh which shows on the screen in alphabetical order all users in the system and their user ID numbers (UID) in a format (sorting is by username):

    adm 3
    apache 48
    avahi 70
    beaglidx 58
    bin 1
    clamav 102
    ...

    b) Change the script (zad8a.sh) in a way so that it sorts out by UID numbers:

    root 0
    bin 1
    daemon 2
    adm 3
    lp 4
    sync 5
    shutdown 6
    ....

    PS: Note that in the output there is no column sign ( : ) between the username and the respective UID.

    Task9:
    LDAP file is given with the below format:

    dn: uid=rhiz,ou=accounts,dc=theo,dc=uni-sofia,dc=bg
    uid: rhiz
    cn: rhiz
    objectClass: account
    objectClass: posixAccount
    objectClass: top
    userPassword:: e2rhizXB0fSQxJHFVS1VaL3RzJHlwbkNtbm5KeG9kM2zE0RWZK aFd=
    uidNumber: 565
    gidNumber: 565
    homeDirectory: /home/rhiz
    dn: uid=hristo,ou=accounts,dc=theo,dc=uni-sofia,dc=bg
    uid: hristo
    cn: hristo
    objectClass: account
    objectClass: posixAccount
    objectClass: top
    userPassword:: e2hristoB0fSQxJExEMDBkaElxJEo5dzNScy5yNzhqMHZCLzdj YUdSTi4=
    uidNumber: 568
    gidNumber: 568
    homeDirectory: /home/hristo
    ...and so on

    Compile a script zad9.sh , which accepts as input parameter the filename and generates to the standard output the user and its password.
    Note: A user is uid = value of the line starting with dn:
    User's password is the value of userPassword::

    Example:
    $ ./zad9.sh test.ldap
    rhiz e2rhizXB0fSQxJHFVS1VaL3RzJHlwbkNtbm5KeG9kM2zE0RWZK aFd=
    hristo e2hristoB0fSQxJExEMDBkaElxJEo5dzNScy5yNzhqMHZCLzdj YUdSTi4=
    ... and so on.
    Attached Files Attached Files

  2. #2
    Join Date
    Jun 2003
    Location
    West Palm Beach, FL
    Posts
    2,713

    Thumbs down

    Unfortunately this is not a place where we do your homework.
    If you actually want to learn, don't be lazy and do the homework yourself.
    The person who says it can't be done should not interrupt the person doing it. -- Chinese proverb

  3. #3
    Join Date
    May 2011
    Location
    Pune(India)
    Posts
    32
    Yes LKBrwn, I am agree with you...
    --
    Thanks
    Gopal Pawar

  4. #4
    Join Date
    Jun 2003
    Location
    West Palm Beach, FL
    Posts
    2,713

    Cool

    But you need not be discouraged, there are plenty of experts here that would gladly help you debug your code and point you in the right direction.

    Good luck!
    The person who says it can't be done should not interrupt the person doing it. -- Chinese proverb

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •