shell相关命令

发布时间:2023年12月27日

一、导入数据LOAD DATA


LOAD DATA INFILE语句可以将CSV文件中的数据批量加载到MySQL表中。以下是LOAD DATA INFILE语句的基本语法:
LOAD DATA INFILE 'file_path'
TRUNCATE INTO TABLE table_name
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS
trailing nullcols


file_path:CSV文件的完整路径。
table_name:要将数据加载到其中的目标MySQL表名称。
FIELDS TERMINATED BY ',':指定分隔符。在上面的示例中,我们使用逗号分隔每个字段。
ENCLOSED BY '"':指定字段值用来包含特殊字符的字符。在上面的示例中,我们使用双引号来包含所有字段值。
LINES TERMINATED BY '\n':表示每个记录以换行符结束。
IGNORE 1 ROWS:忽略第一行标题。
trailing nullcols: 表的字段没有对应的值时允许为空?


TRUNCATE说明:在操作类型 TRUNCATE位置, 除了可以用TRUNCATE,还可用以下中的任意一值:
1) insert ? ? --为缺省方式,在数据装载开始时要求表为空
2) append --在表中追加新记录
3) replace --删除旧记录(用 delete from table 语句),替换成新装载的记录
4) truncate --删除旧记录(用 truncate table 语句),替换成新装载的记录


========================================================

二、$的各种用法


通常情况下,在工作中用的最多的有如下几项:

1、$#:表示执行脚本传入参数的个数

2、$*:表示执行脚本传入参数的列表(不包括$0)

3、$$:表示进程的id;Shell本身的PID(ProcessID,即脚本运行的当前 进程ID号)

4、$!:Shell最后运行的后台Process的PID(后台运行的最后一个进程的 进程ID号)

5、$@:表示获取执行脚本传入的所有参数

6、$0:表示执行的脚本名称

7、$1:表示第一个参数

8、$2:表示第二个参数

9、$?:表示脚本执行的状态,0表示正常,其他表示错误

在Shell脚本中,我们经常会看到$0、$1、$2、$3等,看着像是参数,但又不太像,这些究竟表示啥呢?其实非常简单:

$0:你写的shell脚本本身的名字
$1:给你写的shell脚本传的第一个参数
$2:给你写的shell脚本传的第二个参数

================================

三、重定向


echo "Hello, World!" > output.txt ? ?将Hello, World!写入文件output.txt(覆盖)
echo "Hello again, World!" >> output.txt ? ? 将Hello, World!写入文件output.txt(后面追加)
echo "Error: Something went wrong!" 2> error.log ? ? 将错误信息重定向写入文件error.log(覆盖)

echo -e "OK! \n" # -e 开启转义


===========================

四、变量的引用


# 变量引用示例
name="Alice"
echo "Hello, ${name}!" ?
# 输出:Hello, Alice!

# 变量默认值示例
unset age
default_age=18
echo "Age: ${age:-$default_age}" ?
# 输出:Age: 18,因为变量 age 未设置,默认使用 $default_age 的值

# 变量存在性检查示例
name="Bob"
echo "Welcome, ${name:+$name}" ?
# 输出:Welcome, Bob,因为变量 name 存在且非空

# 变量长度获取示例
message="Hello, World!"
echo "Message length: ${#message}" ?
# 输出:Message length: 13

# 字符串截取示例(从左边截取)
string="abcdefg"
echo "Substring: ${string:1:3}" ?
# 输出:Substring: bcd,从位置 1 开始截取长度为 3 的子字符串

# 字符串截取示例(从右边截取)
string="abcdefg"
echo "Substring: ${string:0-3}" ?或者 ?echo "Substring: ${string: -3}" ? ? 备注:空格-3
# 输出:Substring: bcd,从位置 1 开始截取长度为 3 的子字符串

文章来源:https://blog.csdn.net/dhklsl/article/details/135247151
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。