💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
### linux下文件权限说明: ![](https://img.kancloud.cn/67/c5/67c55f0534fc42a46fb64d10cf3f903a_541x95.png) 标志共10位,第一位是文件标志,- 表示普通文件,d 表示目录,l 表示软链接。 后9位是权限标志,这部分的 前3位表示文件/目录**所有者**(创建者)拥有的权限; 中间3位表示文件/目录**所有组**(创建者所在组中的其他用户拥有的权限)拥有的权限; 最后3位表示其他用户(既不是创建者,也不是创建组中的用户)拥有的权限。 r:可读 w:可写 x:可执行 ***** chmod +x ,所有的用户都可以获得执行权,chmod o-x 去掉其他用户的执行权(o 即other) ***** shell 脚本的第一行 #!/bin/bash ,表示告诉系统用这个解释器执行,当用 bash a.sh 执行时,那行就是个注释,当用 ./a.sh 执行时,那行就生效了。 ***** ### 自定义变量 echo $USER $PWD $HOME $SHELL 系统内置变量。 变量定义时,i=0,不可以写成 i = 0,i 会被当成命令, = 当成第一个参数, 0 被当成第二个参数。 unset i,撤销变量。 readonly i = 5,定义静态变量,不可修改,无法用unset。 ### 特殊变量 **$n**(n为数字,$0表示脚本名称,$1-$9表示第1到9个参数,第十个以上的参数用花括号,如${10}) ![](https://img.kancloud.cn/b2/f1/b2f1dec98452f7f1637a80d8012a084a_103x56.png) ![](https://img.kancloud.cn/04/62/0462c50971dfb0b95e13b49e415c991d_299x29.png) **$#**(获取输入参数的个数) ![](https://img.kancloud.cn/b2/f1/b2f1dec98452f7f1637a80d8012a084a_103x56.png) ![](https://img.kancloud.cn/b8/eb/b8eb01b74556eb3a015e26c260ed1109_367x47.png) **$*** **$@** ,打印出参数整体,区别在于,$* 将参数作为整体,$@将参数分开对待。 ![](https://img.kancloud.cn/05/25/0525fb6e22bd7aa0541d558cc9fd41b4_99x78.png) ![](https://img.kancloud.cn/aa/08/aa080bb4abecf99766aae4f05dd84fed_329x76.png) **$?**,返回上一个脚本的执行状态码,echo $?,正常执行完,返回0,否则返回1。 ***** ### 运算符 a=5 b=5 echo $[$a+$b] 或者 echo $(($a+$b)) expr $a + $b,expr 是个命令,后面三个是参数,所以要空格 ***** ### 条件判断 [ $a = $b ],注意空格。 字符串比较用 =,数值比较用 -eq , -lt , -le , -ge , -gt , -ne。 [ -x a.sh ],查看 a.sh 是否有执行权限,如果有,echo $? 返回0,否则返回1。-r , -w 同理。 [ -f a.sh ],查看a.sh文件是否存在,如果存在,echo $? 返回0,否则返回1。-d 查看是否存在目录是否存在,-e 查看任意文件或目录是否存在。 ***** ``` #!/bin/bash #!查看文件是否存在。 if [ -f text ] then cat text else touch text #! >> 是追加, > 是覆盖 echo text >> text fi ```