shell book

 

在线shell

阿里云在线命令行(与Linux命令行基本一致)  https://shell.aliyun.com/

菜鸟教程在线编辑器 https://www.runoob.com/try/runcode.php?filename=helloworld&type=bash

Shell/Bash在线运行 http://sh.jsrun.net/

 

shell中的时间date定义

特别注意  mydate=$(date +"%Y-%m-%d %H:%M:%S")     

  • date +之间有空格 
  • +"%Y之间没有空格 
  • "%Y-%m-%d %H:%M:%S"最好用""封闭起来

其他注意事项 , 在结合使用 cp 等命令时 由于不能含空格等特殊字符 ,所以生成的mydate最好不要有空格这样的特殊字符

mydate1=$(date +"%Y-%m-%d_%H:%M:%S")
echo $mydate1
# 输出结果 2023-02-22_06:16:58

mydate2=$(date +"%F_%T")
echo $mydate2
# 输出结果 2023-02-22_06:17:23


#备份文件
cp a.txt a.txt$mydate

 

shell的时间参数含义表示——%y%m%d/%H:%M:%S==>https://blog.csdn.net/m0_38101413/article/details/118659429

 

 

遇见异常

异常: syntax error near unexpected token `  or  异常: arguments must be process or job IDs

以上两个异常都很有可能是以下原因导致

方法一

第一步: vi -b myshSH.sh

第二步: %s/^M//g 

特别声明,第二步中的输入顺序为:     1. ESC  2. : 3. %s/ 4. CTRL+V 5. CTRL+M  6. //g      即  ^用CTRL+V , M用CTRL+M 输入.

 

mySH.sh用windows编辑内容如下:

for(int i = 0 ; i < 10 ; i ++)
do
  echo $i
done

当用vi打开后显示如下:

 vi中输入命令%s/^M//g 回车后显示如下,已去掉^M

之后就可以正常执行该shell脚本了

方法二

参考最后链接

方法三 (链接中的/r是错误的)

cat filename | tr -d "\r" > newfile 去掉^M生成一个新文件

 

参考链接:

syntax error near unexpected token 脚本报错误解决

http://blog.csdn.net/xyp84/article/details/4435899

 

 

方法四 notpad++右下角直接改 ,简单高效(推荐)

 

 

shell if else

#!/bin/bash

# 定义一个变量
score=85

# 根据成绩级别输出相应的信息
if [ "$score" -ge 90 ]
then
    echo "优秀"
elif [ "$score" -ge 80 ]
then
    echo "良好"
elif [ "$score" -ge 70 ]
then
    echo "中等"
else
    echo "不及格"
fi

 

posted @ 2017-08-01 16:26  苦涩泪滴  阅读(185)  评论(0编辑  收藏  举报