首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么‘`print’%‘在库函数中的行为不同?

为什么‘`print’%‘在库函数中的行为不同?
EN

Stack Overflow用户
提问于 2022-03-26 16:45:23
回答 1查看 32关注 0票数 0

在我的终端上:

代码语言:javascript
复制
$ print -P "%%"
%

宇宙飞船提示函数中的等效代码:

代码语言:javascript
复制
spaceship_extension() {
  unset PROMPT_PERCENT 
  unset PROMPT_SUBST
  print -P "00%%\n"

  set PROMPT_PERCENT 
  unset PROMPT_SUBST
  print -P "01%%\n"
  
  unset PROMPT_PERCENT 
  set PROMPT_SUBST
  print -P "10%%\n"
  
  set PROMPT_PERCENT
  set PROMPT_SUBST
  print -P "11%%\n"
}

输出:

代码语言:javascript
复制
00
01
10
11

根据快速展开手册页,这些是唯一相关的环境变量。有人知道这是怎么回事吗?

编辑:删除了环境变量的设置和重置的exports

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-26 17:03:48

第一个问题是,export对这两个选项都没有影响;在每种情况下,您只是在一组名称上设置导出属性。

第二,setunset操作名称,而不是shell选项。你想要setoptunsetopt

代码语言:javascript
复制
% setopt PROMPT_PERCENT
% print -P '00%%\n'
00%

% unsetopt PROMPT_PERCENT
% print -P '00%%\n'
00%%

(实际上,取消设置PROMPT_PERCENT可能会影响您的实际提示符;我在这里使用%作为提示符的占位符,而不是取消设置选项后提示符的准确表示。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71629986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档