1. 文件会出现^M
^M是windos的dos文件格式特有的换行符,在linux上你可以通过 cat -A 文件名 看到这些隐藏字符。
解决方法:
如果需要转换,我们只需要转换文件格式即可。你可以选择直接在服务器上调整。包括如下三种方式。
(1)使用linux命令dos2unix filename,直接把文件转换为unix格式
(2)使用sed命令sed -i "s/\r//" filename 或者 sed -i "s/^M//" filename直接替换结尾符为unix格式
(3)vi filename打开文件,执行 : set ff=unix 设置文件为unix,然后执行:wq,保存成unix格式。
(4) Idea开发工具 文件格式由 CRLF - Windows (\r\n) 换成 LF - Unix and macOS (\n)
2. set -- 显示或设置 shell 特性及 shell 变量
set 命令作用主要是显示系统中已经存在的 shell 变量,设置 shell 变量的新变量值,可以把已有的变量操作成环境变量等等。使用 set 更改 shell 特性时,符号 + 和 - 的作用分别是打开和关闭指定的模式。set 命令不能够定义新的 shell 变量。如果要定义新的变量,可以使用 declare 命令以“变量名=值”的格式进行定义。 文章来源:https://www.toymoban.com/news/detail-470532.html
选项 | 说明 |
-a | 标记已修改的变量,以供输出至环境变量(意味着’set -a’之后定义的普通变量可在子shell中访问到)。 |
-b | 使被中止的后台程序立刻回报执行状态。 |
-C | 转向所产生的文件无法覆盖已存在的文件。 |
-d | Shell预设会用杂凑表记忆使用过的指令,以加速指令的执行。使用-d参数可取消。 |
-e | 若指令传回值不等于0,则立即退出shell。 |
-f | 取消使用通配符。 |
-h | 自动记录函数的所在位置。 |
-H Shell | 可利用"!"加<指令编号>的方式来执行history中记录的指令。 |
-k | 指令所给的参数都会被视为此指令的环境变量。 |
-l | 记录for循环的变量名称。 |
-m | 使用监视模式。 |
-n | 只读取指令,而不实际执行。 |
-p | 启动优先顺序模式。 |
-P | 启动-P参数后,执行指令时,会以实际的文件或目录来取代符号连接。 |
-t | 执行完随后的指令,即退出shell |
-u | 当执行时使用到未定义过的变量,则显示错误信息。 |
-v | 显示shell所读取的输入值。 |
-x | 执行指令前,会先显示该指令及其参数。 |
(一)开启/关闭特性
set -x
是开启 x
特性, set +x
是关闭 x
特性, set -x
等效于 set -o xtrace
, 即在执行命令时打印该命令及其参数。执行 set -x
后,对整个脚本有效。文章来源地址https://www.toymoban.com/news/detail-470532.html
到了这里,关于Linux 问题 2. set -- 显示或设置 shell 特性及 shell 变量的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!