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生成一个新文件
参考链接:
方法四 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
感觉空虚寂寞,只是因为你无所关注,无处付出。