linux设置命令失效 linux 命令失效

linux中的test命令失效现象

不是test失效, 而是 test 命令没有得到足够的参数.

创新互联是一家专业提供伊州企业网站建设,专注与网站建设、做网站H5页面制作、小程序制作等业务。10年已为伊州众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。

原因是shell 在解释命令时, 会"先"对命令行进行扩展, 使用变量实际的值替换到命令行中, 然后再执行命令.

上面unset name后, $name的值为空, 执行完命令行扩展后, 实际执行的是

test -z  echo "empty" || echo "not empty"

此时, shell 实际传给test 命令的参数只有一个 "-z",  这种情况下, test 的退出码总是0

所以在执行的时候, 使用双引号将变量名引起来是个好习惯, 这样命令行扩展后实际传给test的参数为2个(尽管第2个只是一个空字符串)

关于shell 的命令行扩展, 除了变量, 还有一些其它的工作,

见下例: a.sh

#!/bin/bash

echo $#

echo $@

执行 ./a.sh a{1,2,3} 输出为

./a.sh a{1,2,3}

3

a1 a2 a3

看起来是传给命令行一个参数 a{1,2,3}, 实际上执行完shell 扩展后, 传给a.sh 的参数是 a1 a2 a3 共3个参数.

关于shell 扩展的更多细节, 详见bash 的man page的 EXPANSION 这一节.

linux系统中各种命令失效是什么原因

问题描述不够清楚,执行命令返回什么结果,还有是哪个版本的Linux。 多半是你的环境变量出问题了。 echo $PATH 看看是否包含了 /bin /sbin /usr/bin 这些目录

Linux系统在设置alias命令重启后失效的问题?

在使用linux系统的过程中,大多数情况下都是在字符界面下进行的。有些比较长的命令我们不希望每次都重复输入,这样不仅浪费时间而且还容易出错;我们会使用alias命令来解决

比如:

alias ll='ls -l --color

这样我们下次可以直接输入ll来代替这一长串或更长的命令。

但是只是这样的话,会在重启之后失效,解决办法是编辑~/.bashrc文件

vim ~/.bashrc

wq保存文件后,运行:

source ~/.bashrc

(不然不生效)

如果还不行的话,说明没有~/.bash_profile文件,或者文件中没有执行.bashrc文件。

(.bash_profile文件是用户登陆终端的时候会自动执行的文件,一般此文件中会调用.bashrc)

如果是这样,需要打开(如果没有的话先创建)文件:

~/.bash_profile

在里面加入一行:

source ~/.bashrc

就ok了。

关于linux里的命令无效

cd .. #注意cd后面有空格,这跟dos、windows不一样

ls 没输出说明没有文件,可以创建新文件、cd到别的目录

也可以ls -al 查看隐藏文件


当前名称:linux设置命令失效 linux 命令失效
文章URL:http://pwwzsj.com/article/dohchsd.html