简单的shell脚本and踩坑

shell脚本和其他程序文件性质相同, 通过脚本可以省去很多重复性劳动, 例如给集群内一百台机器copy文件.

接下来编写一个输出hostname的shell脚本.

#! /bin/bash
name=`hostname`
echo hostname=$name
>>> hostname=master

第一行: 声明这是个bash执行文件. 一般shell脚本要通过sh或bash命令来执行.
第二行: 声明了一个变量name, 它等于命令hostname的返回值. 注意hostname的两侧不是单引号, 是数字1左边的符号. 如果是引号, 会被认为是普通的字符串.
另外. 等号两侧是不能有空格的.
第三行: echo输出, $后面跟之前声明过的变量.

shell文件命名

你的shell文件可以随意命名, 无需后缀(例如.txt, .py之类的). 但一般都会命名为*.sh, 主要是为了能一眼看出它是shell脚本.

shell存储位置

你可以自己设置一个专属的shell存放位置, 只要执行bash时能记住路径就行. 但一般来说, 大家都会放在/usr/local/bin目录下, 这是约定俗成的, 大家都很有默契地会把自制的shell脚本放在这个文件夹. 如果需要授予root权限, 就授予吧.

shell执行之前必须做的工作

虽然你将shell文件存入了文件夹, 但对系统来说, 它只是一个普通的文件, 系统并不会让任何人有权利执行它. 所以你必须手动将执行权赋予用户.

chmod +x myshell.sh

chmod用于修改权限.
+x, 是a+x的简写, 意为将执行权赋予给所有人.
如果只想赋予给特定的用户(例如root用户, 或者你创建的其他普通用户), 你就要切换到那个用户, 然后再执行chmod u+x myshell.sh. u就是user, 用户的意思.
其他chmod的用法请自己搜索.
最后, myshell.sh就是你shell脚本的名字.

每次输入路径都很麻烦, 怎么办?

设置环境变量.
系统会自动在环境变量的预设目录下寻找文件.
环境变量的文件在/etc/profile
用vim打开后, 将你的shell文件夹路径以下列形式写入:

export PATH=$PATH:这里写你的shell文件夹的绝对路径

例如

export PATH=$PATH:/usr/myshell

即使存放在/usr/local/bin下, 也要写环境变量.

写完后, 执行source /etc/profile来重新加载环境变量.
接下来就可以随意使用shell脚本了.
而且因为脚本里写了/bin/bash, 我们可以直接用文件名直接执行, 而不需要bash shell.sh

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值