【转】Bash中的shopt选项

set选项与shopt选项是两组不同的内容,用set -o和shopt -p可以分别查看两个组所有的打开和关闭的条目, 在默认状态下,有些是打开的,有些是关闭的,shopt各选项随着bash版本的更新会有增加,与shopt相关的基本操作如下:
# shopt -p 列出所有选项
# shopt -s 列出所有打开的选项
# shopt -s extglob 打开extglob选项
# shopt -u 列出所有关闭的选项
# shopt -u extglob 关闭extglob选项

举列说明:
cdspell 当cd进一个目录时,如果目录名被无意中打错,某个字母错了或者缺失,也一样可以进入这个目录。
dotglob 以点开头的隐藏文件可以不用前面加点而像其它文件一样正常地用通配符表示。
extglob 可以用rm !(*jpg)这样的方式来删除所有不以jpg结尾的文件名,也可以 rm *@(jpg|png) 这样地表示“或”,当然,还有其它.....
在bash的使用过程中需要熟悉这些选项,找到符合自己口味的设置。

时间: 2024-08-01 16:36:53

【转】Bash中的shopt选项的相关文章

Bash中的shopt选项

http://blog.chinaunix.net/uid-20587169-id-1919110.html shopt命令用于显示和设置shell中的行为选项,通过这些选项以增强shell易用性.shopt命令若不带任何参数选项,则可以显示所有可以设置的shell操作选项. set选项与shopt选项是两组不同的内容,用set -o和shopt -p可以分别查看两个组所有的打开和关闭的条目, 在默认状态下,有些是打开的,有些是关闭的,shopt各选项随着bash版本的更新会有增加,与shopt

Bash Shell中命令行选项/OA现金盘平台租用

写程序的时候经常要处理命令行参数,本文描述在Bash下的命令行处理方式. 选项与参数: OA现金盘平台租用(企 娥:217 1793 408) 如下一个命令行: . / test.sh - f config.conf - v -- prefix =/ home 我们称-f为选项,它需要一个参数,即config.conf, -v 也是一个选项,但它不需要参数. --prefix我们称之为一个长选项,即选项本身多于一个字符,它也需要一个参数,用等号连接,当然等号不是必须的,/home可以直接写在--

如何在 Bash 中删除“除某些文件外的所有文件”?

我的一位同事曾经问过我这样一个问题:在 Linux 下,如何 删除目录中除某些文件之外的所有文件?当时,我告诉他可 以通过模式匹配的方法解决.但其实,除此之外,还有其他 的方法,正所谓"条条大路通罗马".让我们来逐一看看. 假设要删除 ~/Downloads 目录中除 *.iso 和 *.zip 外的 所有文件,那么在 bash 中可以按以下方法处理: 方法1:模式匹配法 shopt -s extglob # 确认开启 extglob 选项 cd ~/Downloads rm -v !

bash中的数组

在shell中每一个变量名只能存储一个数据,当为这个变量名进行重新赋值的时候,原先的数据就会丢失,所以我们需要数组这个东西.数组可以将很多的数据使用同一个名称进行保存,相当于多个变量的集合,且在取用的时候很方便.接下来我们来说一说数组的赋值和取用的方法.数组分为稠密数组和稀疏数组,稠密数组就是索引编号必须连续,而稀疏数组的索引编号可以不连续,bash数组属于这一类. 在bash中使用一个数组可以分为两种情况,第一种是先进行声明,然后再使用,第二种是不进行声明,直接使用.声明数组需要用到decla

Linux中bash中的几种基础特性汇总!

首先需要知道什么是shell?如果将Linux内核当作一个地球的核心,那么shell就是地壳.shell本身也是一个应用程序,为我们提供了使用系统的接口.shell程序有很多种,目前主流发行版大多数默认使用bash,其次还有sh,tcsh,csh,fish等,其程序存储在/etc/shells目录下. 由于目前最常用的bash,所以就以bash为例来说一说bash的基础特性,偷偷说一句,其实我也是个新手,其他的shell并未接触,不敢轻易去说,当然本文中难免有错误,还请各位不吝赐教,让大家共同进

Bash 中的 $0 在什么时候不是 argv[0]

每个 C 程序都有一个 main 函数,每个 main 函数都有一个 argv 参数,这个参数是一个字符串数组,这个数组的值是由该 C 程序的父进程在通过 exec* 函数启动它时指定的. 很多人说 Bash 中的 $0 的值就是 bash 这个 C 程序在它的 main 函数中获取到的 argv[0](zeroth argument)的值,我们可以通过 exec 命令的 -a 参数的功能演示一下: $  ( exec -a foo bash -c 'echo $0' ) foo $ ( exe

bash中的空格

先来看一下 空格在bash中的使用规则: 1.赋值运算时=号两边不能使用空格. 2.命令与选项之间需要空格. 3.管道两边的空格可有可无. 再来看一下各种由于空格导致错误的原因: 1)赋值运算时=号左边有空格 var ="abc" 产生的错误信息为: var: command not found 这是由于bash在解释该条命令时,var会作为一个命令去在系统的PATH中去寻找.一旦无法找到var这个命令就回提示"找不到var这个命令",那么后面的语句自然也无法执行.

bash中 2>&1 & 的解释

1.首先,bash中0,1,2三个数字分别代表STDIN_FILENO.STDOUT_FILENO.STDERR_FILENO,即标准输入(一般是键盘),标准输出(一般是显示屏,准确的说是用户终端控制台),标准错误(出错信息输出). 2.输入输出可以重定向,所谓重定向输入就是在命令中指定具体的输入来源,譬如 cat < test.c 将test.c重定向为cat命令的输入源.输出重定向是指定具体的输出目标以替换默认的标准输出,譬如ls > 1.txt将ls的结果从标准输出重定向为1.txt文本

OJ提交题目中的语言选项里G++与C++的区别(转载)

原文链接:http://blog.polossk.com/201405/c-plus-plus-g-plus-plus G++? 首先更正一个概念,C++是一门计算机编程语言,G++不是语言,是一款编译器中编译C++程序的命令而已. 那么他们之间的区别是什么? 在提交题目中的语言选项里,G++和C++都代表编译的方式.准确地说,选择C++的话,意味着你将使用的是最标准的编译方式,也就是ANSI C++编译.如果你使用的是G++的话,意味着你将使用GNU项目中最平凡适用人群最多的编译器(其实也就是