Skip to content

Latest commit

 

History

History

2.Bash

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

Bash基础

npm scripts实际上是在当前操作系统的shell中运行一段命令,而在Linux,Solaris,BSD和Mac OSX系统中,都安装了 Bash 作为默认 shell,所以掌握 Bash 编程是使用npm scripts的基础。

直接在shell中输入

直接输入echo Hello World,就能看到终端显示了Hello World

通过文件调用

第二种方式是通过文件调用,在当前目录创建一个文件hello.sh,输入:

#!/bin/bash          
echo Hello World  

这个文件第一行告诉操作系统,使用什么程序来运行这段脚本。

第二行就是文件正文,会把Hello World输出到终端。

什么是shbash

sh(又叫Shell Command Language)是一种编程语言规范,它有很多实现,比如ksh88dash等。

bash也是sh的一种实现,不过后续也增加了很多新的扩展,准确讲它是sh的一门“方言”。

因为sh是一个规范而不是一个实现,所以/bin/sh会指向一个真正的语言实现(通过syslink或者hard link)。

在大部分GNU/Linux系统中,/bin/sh指向/bin/bash

所以如果我们在文件第一行写

#!/bin/sh

就等于看系统的sh指向哪里(在现代的Debian和Ubuntu里面默认是dash)。

如果我们写

#!/bin/bash

就会去直接寻找bash,如果没有bash就报错。

想查看你的系统中有哪些可用的shell,可以输入

cat /etc/shells

权限问题

如果系统提示:

permission denied: ./hello.sh

说明当前用户没有执行这个脚本的权限,解决方法是使用chmod

chmod +x hello.sh

找不到Bash

如果提示

./hello.sh: Command not found

先检查有没有拼写错误,如果拼写正确,再试试whereis bash来定位到 Bash 正确的位置。

创建目录

mkdir foo

会创建一个名为foo的文件夹

创建文件

touch 1.txt

会生成一个1.txt文件。

那么想创建一百个文件怎么办呢?

touch {1..100}.txt

移除文件和文件夹

rm foo
rm -r folder
rm -f folder