弄懂linux shell对包含$的变量的执行过程?
2023-09-14 09:08:50 时间
参考: http://www.linuxidc.com/Linux/2012-04/58095.htm
在包含变量的命令中, 命令是怎么执行的呢?
首先, 它会原封不动的, 只是按原样替换变量的内容. 然后再按 替换后的命令行内容去 解析命令 并执行命令.
所以, 如果变量字符串(默认的shell变量都是 字符串)中有 空格, 那么这些空格也会原封不动的 插入到这些命令行中.
因此, 在某些命令中, 如果有多个被空格分隔开的单词, 会被命令看作不正确的参数或选项, 而出错.
那么解决 shell变量被替换后执行出错的情况, 就是在变量的两端 加双引号. 不管是什么变量, 不管是作为数字还是字符串操作 , 只要不出错, 都统统的加上双引号??
如: 本来是想用expr命令的表达式 length来计算字符串的长度, 由于字符串中 有空格, 所以如果不加引号, 那么替换后, 自然就会发生命令错误了。
firefox的插件是 xpi文件, xpi = firefox plugin installation 即firefox的插件安装文件。在地址栏输入: about:config, 查找 xpinstall.signatures.requirement签名要求, 设置为false.
相关文章
- 【Linux系统编程】 Linux系统调用概述
- linux环境 c 中如何执行shell命令
- Linux如何下解压windows下的.zip和.rar文件
- linux下redis执行bgsave时,报overcommit_memory错误问题
- Linux账号密码过期会导致crontab作业不能执行
- linux使用shell执行一个Python文件
- Linux网卡命名enp3s0说明
- Linux为sh脚本文件添加执行权限
- linux定时执行python脚本
- 【Linux 内核 内存管理】mmap 系统调用源码分析 ④ ( do_mmap 函数执行流程 | do_mmap 函数源码 )
- 【Linux 内核 内存管理】虚拟地址空间布局架构 ⑤ ( Linux 内核中对 “ 虚拟地址空间 “ 的描述 | task_struct 结构体源码 )
- 【Linux 内核】实时调度类 ⑥ ( 实时调度类核心函数源码分析 | 插入进程到执行队列 | 从执行队列中选择优先级最高的进程 )
- 【Android 逆向】Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )
- Linux的经常使用命令(1) - 指定执行级别
- 获取操作系统详细信息的 Linux uname 命令示例
- Windows任务计划 & Linux crontab定时自动任务
- launch failed.Binary not found in Linux/Ubuntu解决方案
- linux查看登录用户
- Linux 服务器buff/cache清理
- 在Linux中三种让crontab每秒执行任务的方法
- linux定时执行一个脚本
- 使用串口重定向为服务器安装linux操作系统