小编bsm*_*moo的帖子

Bash案例陈述

我正在努力学习案例,因为我正在编写一个功能齐全的脚本.

我从下面开始

#!/bin/sh
case $@ in

    -h|--help)
            echo "You have selected Help"
            ;;
    -B|-b)
            echo "You have selected B"
            ;;
    -C|-c)
            echo "You have selected C"
            ;;
      *)
            echo "Valid Choices are A,B,C"
            exit 1
            ;;
esac
Run Code Online (Sandbox Code Playgroud)

我想使用以下两个选项:

./getopts.sh -h -c
Run Code Online (Sandbox Code Playgroud)

但我得到这个结果有效选择是A,B,C

请你帮帮忙,让我知道我做错了什么?

我想构建一个脚本,如果你输入一个选项会做一些事情但是如果你输入多个就做多件事.

另外,我将如何解析$ 1这个脚本作为surley哪个选项我先输入(-h)将是1美元?

谢谢!

bash shell case

11
推荐指数
2
解决办法
2万
查看次数

bash和telnet测试电子邮件

我想知道电子​​邮件地址是否有效.

我通过telnet telnet完成了这个,见下文

$ telnet mail.example.com 25
Trying 0.0.0.0...
Connected to mail.example.com.
Escape character is '^]'.
220 mail.example.com Mon, 14 Jan 2013 19:01:44 +0000
helo email.com
250 mail.example.com Hello email.com [0.0.0.0]
mail from:blake@email.com
250 OK
rcpt to:gfdgsdfhgsfd@example.com
550 Unknown user
Run Code Online (Sandbox Code Playgroud)

有了这550个请求,我知道该地址在邮件服务器上无效......如果它有效,我会得到如下的响应:

250 2.1.5 OK 
Run Code Online (Sandbox Code Playgroud)

我如何在shell脚本中自动执行此操作?到目前为止,我有以下内容

#!/bin/bash
host=`dig mx +short $1 | cut -d ' ' -f2 | head -1`
telnet $host 25 
Run Code Online (Sandbox Code Playgroud)

谢谢!

unix bash shell command telnet

6
推荐指数
1
解决办法
2万
查看次数

每次创建新用户时都执行shell脚本

每次添加新用户时执行命令最简单的方法是什么?

我检查过,/etc/adduser.conf但没有什么在那里看起来会这样做?

我想将它添加到用户,.bashrc以便jsut在登录时执行,但我宁愿在登录之前进行设置.

任何帮助,将不胜感激.

bash shell ubuntu

6
推荐指数
1
解决办法
2701
查看次数

Bash if string = this or that

试图编写一个脚本来读取用户输入的内容......我知道这是基本的但我坚持第一个如果......

echo  "Please enter yes or no (y/n)?"
read string
if [ $string = "y" -o "n" ]
   then
      echo "User selected $string"
   else
      echo "You didn't enter y/n !!!"
fi
Run Code Online (Sandbox Code Playgroud)

如果 [ $backup = "y" 或 "n" ]

有任何想法吗?

linux bash shell ubuntu if-statement

5
推荐指数
2
解决办法
2万
查看次数

grep文件中的一行然后删除该行

$ cat example.txt
Run Code Online (Sandbox Code Playgroud)

产量:

example
test
example
Run Code Online (Sandbox Code Playgroud)

我想从此文件中删除'test'字符串.

$ grep -v test example.txt > example.txt 
$ cat example.txt 
$
Run Code Online (Sandbox Code Playgroud)

以下作品,但我觉得有更好的方法!

$ grep -v test example.txt > example.txt.tmp;mv example.txt.tmp example.txt 
$ cat example.txt 
example
example
Run Code Online (Sandbox Code Playgroud)

值得注意的是,这将是一个超过10,000行的文件.

干杯

string bash awk grep sed

4
推荐指数
2
解决办法
1万
查看次数

回声但保留双引号

我正在尝试创建一个将varibles/text回显到文件的脚本 - 这个脚本的片段是:

echo "
SUBJECT="Text here"
EMAIL="email@domain.co.uk"
EMAILMESSAGE="/tmp/emailmessage.txt"
" > /root/email.txt
Run Code Online (Sandbox Code Playgroud)

这工作正常,但所有的双引号都被删除了.

当前输出:

# cat /root/email.txt
SUBJECT=Text here
EMAIL=email@domain.co.uk
EMAILMESSAGE=/tmp/emailmessage.txt
Run Code Online (Sandbox Code Playgroud)

期望的输出:

# cat /root/email.txt
SUBJECT="Text here"
EMAIL="email@domain.co.uk"
EMAILMESSAGE="/tmp/emailmessage.txt"
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

干杯

bash shell ubuntu echo

3
推荐指数
1
解决办法
2002
查看次数

重新排列csv文件

我有一个内容类似于下面的文件

Boy,Football
Boy,Football
Boy,Football
Boy,Squash
Boy,Tennis
Boy,Football
Girl,Tennis
Girl,Squash
Girl,Tennis
Girl,Tennis
Boy,Football
Run Code Online (Sandbox Code Playgroud)

如何使用'awk'或类似方法将其重新排列为以下内容:

     Football Tennis Squash
Boy  5        1      1
Girl 0        3      1
Run Code Online (Sandbox Code Playgroud)

我甚至不确定这是否可行,但任何帮助都会很棒.

csv bash shell scripting awk

1
推荐指数
1
解决办法
71
查看次数

标签 统计

bash ×7

shell ×6

ubuntu ×3

awk ×2

case ×1

command ×1

csv ×1

echo ×1

grep ×1

if-statement ×1

linux ×1

scripting ×1

sed ×1

string ×1

telnet ×1

unix ×1