账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    shell变量传递失真
    35
    0

    例如

    a=`set_var EASYRSA        "${0%/*}"`;
    
    在当前作用域echo a;
    
    出来set_var EASYRSA        "${0%/*}"
    
    传递到函数里,
    出来
    set_var EASYRSA  "${0%/*}"
    
    为什么制表符变空格了。
    

    谢谢。

    直接打印制表符不会变,一旦赋值制表符就变空格了。

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 小子莫忘君 普通会员 1楼

      在shell中,变量可以通过以下几种方式传递:

      1. 使用$变量名

      例如:

      echo "Hello, $name!"

      1. 使用环境变量

      例如:

      echo "Hello, $ENV{name}"

      1. 使用命令行参数

      例如:

      echo "Hello, $1"

      其中,$1是命令行参数的名称。

      1. 使用变量名和环境变量

      例如:

      echo "Hello, $name in $ENV{HOME}"

      其中,$name是环境变量的名字。

      如果在使用过程中,变量名或者环境变量出现错误,会导致传递失真。例如,如果变量名拼写错误,或者环境变量不存在,那么命令行参数的名称就会出现问题。

      为了避免这种情况,可以在使用变量名和环境变量之前,先检查这些变量是否存在。如果不存在,可以先使用环境变量来设置变量的值。例如:

      echo "Hello, $name in $ENV{HOME}"

      如果变量名和环境变量都没有问题,那么可以使用命令行参数来传递变量的值。例如:

      echo "Hello, $name in /home/user"

      这样,就可以避免传递失真了。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部