我正在努力学习案例,因为我正在编写一个功能齐全的脚本.
我从下面开始
#!/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美元?
谢谢!
我想知道电子邮件地址是否有效.
我通过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)
谢谢!
每次添加新用户时执行命令最简单的方法是什么?
我检查过,/etc/adduser.conf但没有什么在那里看起来会这样做?
我想将它添加到用户,.bashrc以便jsut在登录时执行,但我宁愿在登录之前进行设置.
任何帮助,将不胜感激.
试图编写一个脚本来读取用户输入的内容......我知道这是基本的但我坚持第一个如果......
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" ]
有任何想法吗?
$ 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行的文件.
干杯
我正在尝试创建一个将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)
有任何想法吗?
干杯
我有一个内容类似于下面的文件
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)
我甚至不确定这是否可行,但任何帮助都会很棒.