linux脚本一般放在哪个目录下,Linux Deepin 将脚本放在个人目录下直接执行

在 Linux Deepin 下,如何将 Bash 脚本放在个人目录下并能够不指定路径而直接执行脚本?

今天我们就以这个问题作为切入点,继续讲一下 Bash 的一些基础知识。

现在,我们打开文本编辑器,编写一个名称为 noisyscript 的 Bash 脚本,其内容为:

Default

#! /usr/bin/env bash

while true

do echo "I am a noisy script,hohoho!"

done

1

2

3

4

#! /usr/bin/env bash

whiletrue

doecho"I am a noisy script,hohoho!"

done

编写完毕后保存。赋予该脚本以可执行权限:

Default

$ chmod +x noisyscript

1

$chmod+xnoisyscript

如何将它放在个人目录下并能够不指定路径来直接执行它呢?这里我们就需要把我们的个人目录放在 PATH 变量(PATH 变量是 Bash 在一命令非别名、函数、内置命令、shell 关键词且未指定路径名称时要搜寻的一个由冒号隔开的路径列表)里面,并将此设置放在当前用户的 .bashrc 文件中。比如,我们打算把自己的脚本都放在当前用户的家目录下的 bin 路径下执行,我们需要这样做:

Default

$ mkdir -p $HOME/bin

$ echo 'PATH="$HOME/bin:$PATH"' >> "$HOME"/.bashrc

$ exec bash

1

2

3

$mkdir-p$HOME/bin

$echo'PATH="$HOME/bin:$PATH"'>>"$HOME"/.bashrc

$execbash

第一条命令会在当前用户的家目录下创建一个名称为 bin 的目录。第二条命令会在当前用户的 .bashrc 文件中加上一行,用于将刚创建的 bin 目录加入到 PATH 变量的开头。这样,每一个新的 Bash 实例都会检查你的 bin 目录下的可执行脚本。最后一行会将我们当前运行的 Bash 换成新的实例,这个新的实例在启动时会读取新的 .bashrc 文件。

这样,我们就可以将我们的可执行脚本放于该目录下并像执行普通命令一样执行该脚本了:

Default

$ mv noisyscript "$HOME/bin"

$ noisyscript

1

2

$mvnoisyscript"$HOME/bin"

$noisyscript

下面,为了照顾初学 Bash 的朋友,我们来顺便解释一下这个脚本内容的含义:

脚本的第一行 #! /usr/bin/env bash 为脚本的标头,也可以写成 #! /bin/bash,这一行告诉我们的系统内核在该脚本执行时,会调用 bash 作为其解释器。网上有许多例子会以 /bin/sh 作为解释器。尽管 sh 与 Bash 的句法非常相像,且大多数 Bash 脚本在 sh 里面也能够正常执行,但是 sh 并不是 Bash,许多 Bash 特性并不适用于 sh。另外,也完全没有必要在脚本名称上加上一个 .sh 后缀,它不仅无任何作用,而且有误导作用——因为这是一个 Bash 脚本,而非一个 sh 脚本。

我们在《Linux Deepin 同时解压多个 taball 压缩档案》一文中曾讲过循环与 for-循环两个基本概念,并使用 for-循环实现了同时解压多个 tarball 压缩档案的目的。在本文的这个脚本中,我们使用到另一种循环——while-循环。while-循环是在某个命令执行成功的前提下一直继续执行代码的一种循环。

true 是一个 Bash 的内置命令,总是返回一个成功的执行结果(即退出状态为 0)。这样,对于一直成功执行的 true 命令,就会一直执行 echo "I am a noisy script,hohoho!" 这段代码(注意:你可以按 Ctrl-C 来终止这个脚本的执行)。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值