REDUX:如何克服 Linux 上的 ksh 与 AIX/Solaris/HPUX 上安装的 ksh 之间的不兼容问题?

     2023-03-15     150

关键词:

【中文标题】REDUX:如何克服 Linux 上的 ksh 与 AIX/Solaris/HPUX 上安装的 ksh 之间的不兼容问题?【英文标题】:REDUX: How to overcome an incompatibility between the ksh on Linux vs. that installed on AIX/Solaris/HPUX? 【发布时间】:2010-09-10 21:38:06 【问题描述】:

在我们将数百个 ksh 脚本从 AIX、Solaris 和 HPUX 移植到 Linux 的过程中,我发现了另一个问题。上一个问题见here。

这段代码:

#!/bin/ksh
if [ -a k* ]; then
    echo "Oh yeah!"
else
    echo "No way!"
fi
exit 0

(在包含多个名称以 k 开头的文件的目录中运行时)会产生“哦,是的!”当使用 AT&T ksh 变体(ksh88 和 ksh93)调用时。另一方面,它会产生错误消息,然后是“没办法!”在其他 ksh 变体(pdksh、MKS ksh 和 bash)上。

再次,我的问题是:

是否有环境变量会导致 pdksh 表现得像 ksh93?做不到这一点: pdksh 上是否有获得所需行为的选项?

【问题讨论】:

【参考方案1】:

您确实意识到 [ 是/usr/bin/test 的别名(通常是符号链接或硬链接),对吗?所以也许实际的问题是/usr/bin/test 的不同版本?

OTOH,ksh 用内置函数覆盖它。也许有办法让它不这样做?或者,如果所有平台上的/usr/bin/test 都兼容,您可以明确地将 [ 别名为/usr/bin/test

【讨论】:

【参考方案2】:

在 Bash 中, test -a 操作是针对单个文件的。

我猜在 Ksh88 中 test -a 操作是针对单个文件的,但没有抱怨,因为其他测试词是 -a 的未指定条件。

你想要类似的东西

for K in /etc/rc2.d/K* ; do test -a $K && echo heck-yea ; done

我可以说 ksh93 在这方面就像 bash 一样工作。 很遗憾,我认为代码写得不好,我的意见,而且可能是一个不好的意见,因为问题的根本原因是 ksh88 内置测试允许草率的代码。

【讨论】:

【参考方案3】:

一年后我的问题似乎没有解决办法。

我添加这个答案是为了说我将不得不忍受它......

【讨论】:

【参考方案4】:

我不会再在 Linux 上使用 pdksh。 由于 AT&T ksh 已成为开源,因此各种 Linux 发行版都提供了软件包。例如。 RedHat Enterprise Linux 和 CentOS 包含 ksh93 作为“ksh”RPM 包。

pdksh 仍然在软件供应商的许多安装要求文档中被提及。我们用 ksh93 替换了我们所有 Linux 系统上的 pdksh,到目前为止没有任何问题。

【讨论】:

如何克服 Redux React Express 和 Node 的 CORS 问题?

】如何克服ReduxReactExpress和Node的CORS问题?【英文标题】:HowToOvercomeCORSissueswithReduxReactExpressandNode?【发布时间】:2016-12-0912:00:33【问题描述】:我有一个使用ReactRouter和Redux作为其状态管理器的React应用程序。应用的服务器端使用E... 查看详情

在 AIX/bash 上的 bash 循环中读取文件比在 Linux/ksh 中慢得多 - BLOCKSIZE?

】在AIX/bash上的bash循环中读取文件比在Linux/ksh中慢得多-BLOCKSIZE?【英文标题】:ReadingfileinbashlooponAIX/bashismuchslowerthaninLinux/ksh-BLOCKSIZE?【发布时间】:2018-04-2511:15:53【问题描述】:我们有一个在RHELLinux中开发的自定义脚本(在ksh... 查看详情

如何将带有 Redux 的徽章值传递给 React Native 上的 BottomTabBar

】如何将带有Redux的徽章值传递给ReactNative上的BottomTabBar【英文标题】:HowtopassBadgeValuewithReduxtoBottomTabBaronReactNative【发布时间】:2020-02-0415:57:00【问题描述】:如何使用Redux更改BottomTabBar上的徽章值?带有Redux(99+)的BottomTabBar上的... 查看详情

如何克服 Windows 2012 R2 服务器上的 405 后错误

】如何克服Windows2012R2服务器上的405后错误【英文标题】:Howtoovercomeapost405erroronwindows2012R2server【发布时间】:2021-02-2207:17:55【问题描述】:我有一个小型测试应用程序来记录相机并将文件发送到我服务器上的目录。主要文件如下... 查看详情

如何在 Typescript 中使用动态枚举器(上限量词)克服枚举类型上的 TS2589

】如何在Typescript中使用动态枚举器(上限量词)克服枚举类型上的TS2589【英文标题】:HowtoovercomeTS2589onEnumeratetypewithdynamicEnumerator(upperlimitquantifiernumber)inTypescript【发布时间】:2021-04-1021:29:31【问题描述】:查看Isitpossibletorestrictnu... 查看详情

克服下载 CSV 文件进行解析时的问题。 Linux 与 Windows 换行符

】克服下载CSV文件进行解析时的问题。Linux与Windows换行符【英文标题】:OvercomingIssuesWhenDownloadingaCSVFileforParsing.LinuxvsWindowsNewLineCharachter【发布时间】:2017-11-1605:32:41【问题描述】:我正在尝试使用历史股票价格分析股票数据。这... 查看详情

如何使用 reactjs 和 redux 处理导航

】如何使用reactjs和redux处理导航【英文标题】:Howtohandlenavigationusingreactjsandredux【发布时间】:2016-10-2721:16:51【问题描述】:我正在使用react-router和react-router-redux来处理我页面上的导航。我需要在组件内以编程方式更改我的url。... 查看详情

如何克服“A non-serializable value detection”

】如何克服“Anon-serializablevaluedetection”【英文标题】:Howtoovercome"Anon-serializablevaluedetection"【发布时间】:2020-09-2605:11:59【问题描述】:我正在使用redux-toolkit实现react应用,从firestore获取数据时出现此类错误。在操作中检... 查看详情

如何使用 https://newsapi.org/ 克服 CORS 问题 [重复]

】如何使用https://newsapi.org/克服CORS问题[重复]【英文标题】:HowtoovercomeCORSissuewithhttps://newsapi.org/[duplicate]【发布时间】:2018-10-2102:00:01【问题描述】:我正在尝试通过我的React应用程序中的Redux操作和减速器进行api调用。但是,我... 查看详情

如何将 input 与 redux 一起使用?

】如何将input与redux一起使用?【英文标题】:Howtouseinputtogetherwithredux?【发布时间】:2022-01-1520:39:30【问题描述】:我需要你的帮助。我正在尝试使用redux制作一个待办事项应用程序。现在我尝试通过redux从输入中渲染数据。单击... 查看详情

有啥方法可以在 Linux/AIX 中从 ksh 更改进程名称?

】有啥方法可以在Linux/AIX中从ksh更改进程名称?【英文标题】:IsthereanywayIcanchangeprocessnamefromkshinLinux/AIX?有什么方法可以在Linux/AIX中从ksh更改进程名称?【发布时间】:2021-08-2709:49:04【问题描述】:有什么方法可以将进程名称从k... 查看详情

linux报错:-ksh:xxxx:notfound[nosuchfileordirectory]

1.已经cd到了脚本所在的目录2.用./xxxx可以正常执行3.用/bin/kshxxxx可以正常执行4.脚本的第一行是#!/bin/ksh请帮忙看看是什么原因,谢谢。没看懂你说的啥意思?使用文件路径执行文件ok,那就没以后问题。kshfileName执行也没有问题。... 查看详情

如何将 Redux 4.0 TypeScript 绑定与 redux-thunk 一起使用

】如何将Redux4.0TypeScript绑定与redux-thunk一起使用【英文标题】:HowtouseRedux4.0TypeScriptbindingswithredux-thunk【发布时间】:2018-11-0921:34:10【问题描述】:我在使用带有redux-thunk的Redux4.0的新TS绑定时遇到问题。我通过将基本的Redux"TodoList"... 查看详情

redux 如何与 next.js 一起工作?

】redux如何与next.js一起工作?【英文标题】:Howreduxworkswithnext.js?【发布时间】:2021-07-1418:55:10【问题描述】:我需要将redux与现有的下一个项目集成。但目前,我不明白商店是如何在服务器端工作的。我正在关注这个例子:https:... 查看详情

Linux 上的程序如何与 X11 Server 通信?

】Linux上的程序如何与X11Server通信?【英文标题】:HowdoesaprogramcommunicatewiththeX11ServeronLinux?【发布时间】:2020-04-0302:53:41【问题描述】:所以我对此进行了大量研究,但找不到答案。它是否使用命名管道?本地主机上的套接字?d-... 查看详情

阅读方法:如何克服默读

阅读方法:如何克服默读      默读,面对‘文字内容’时,喉咙完成了发音的全部动作、只是不发出声音。每个“文字”,对应着“特定的声音”。    把“文字内容”当成“图片”。    对... 查看详情

浅谈reactflux与redux

...的动作除了来自外部(如服务器),大部分都来自于页面上的用户活动,那页面上的用户活动怎样对state产生作用呢?React中每个组件都有setS 查看详情

如何将 Redux devtools 与 Nextjs 一起使用?

】如何将Reduxdevtools与Nextjs一起使用?【英文标题】:HowtouseReduxdevtoolswithNextjs?【发布时间】:2021-09-1508:01:05【问题描述】:我正在尝试在我的Next.js应用程序上使用ReduxDevTools扩展。redux工作正常,但我无法在devtools中看到状态。我... 查看详情