Questions tagged «ksh»

Korn外壳程序(ksh)是具有高级脚本功能的外壳程序,通常在商业单位和某些BSD系统上找到,但很少在Linux上使用。

4
如何使用grep命令将字符串搜索放入if语句?
我想在两个文件中搜索多个字符串。如果在两个文件中都找到一个字符串,则进行处理。如果仅在一个文件中找到一个字符串,则进行另一件事。 接下来是我的命令: ####This is for the affirmative sentence in both files if grep -qw "$users" "$file1" && grep -qw "$users" "$file2"; then ####This is for the affirmative sentence in only one file, and negative for the other one if grep -qw "$users" "$file1" ! grep -qw "$users" "$file2"; then 否定和确认声明的正确方法吗?pd我正在使用KSH …

5
KornShell中的彩色提示
根据StackOverflow的这篇文章,在KornShell中可能有一个彩色的提示。我还无法弄清楚该怎么做。我可以使用颜色: echo -e "\033[34mLinux\033[00m" 给出蓝色的“ Linux”输出,如下所示: printf "\033[34mLinux\033[00m" 但是,当我将转义代码合并到PS1提示变量中时,它们不会被转义。我需要怎么做才能获得彩色提示?除了成为让人眼花something乱的东西之外,我发现在视觉上解析输出时,彩色提示很有用。
11 colors  prompt  ksh 

4
跳过文件的前3个字节
我正在使用AIX 6.1 ksh shell。 我想用一根班轮做这样的事情: cat A_FILE | skip-first-3-bytes-of-the-file 我想跳过第一行的前3个字节;有没有办法做到这一点?

3
如何将文件名拆分为变量?
假设我有以下格式的csv文件列表: INT_V1_<Product>_<ID>_<Name>_<ddmmyy>.csv ASG_B1_V1_<Product>_<ID>_<Name>_<ddmmyy>.csv 该INT_V1_&ASG_B1_V1_是固定的,这意味着所有的CSV文件,开始使用它。 如何将文件名拆分为变量? 例如,我想捕获Name并将其分配给变量$Name。
11 bash  ksh 

4
查找不包含子目录的目录
我写的脚本是ksh。需要直接在当前目录下查找仅包含文件而不包含子目录的所有目录名。 我知道我可以ls -alR在第一个字段(d用于目录)中对第一个字母使用输出并对其进行递归解析。我认为这awk是解析和查找的最佳方法。 例如,ls -al当前目录中的一个简单输出: drwxr-xr-x 22 af staff 748 18 Mar 22:21 . drwxr-xr-x 5 root admin 170 17 Mar 18:03 .. -rw------- 1 af staff 3 17 Mar 16:37 .CFUserTextEncoding drwxr-xr-x 5 af staff 170 17 Mar 17:12 Public drwxr-xr-x 9 af staff 306 18 Mar 17:40 Sites …
10 shell  find  directory  ls  ksh 

3
删除键在命令行上不起作用
**注意:我在SuperUser上问了同样的问题,但没有得到任何回应。我现在意识到这是一个针对此特定问题的更合适的论坛。* 在ksh shell中,Delete键在命令行上无法正常工作。当我按Delete时,我得到〜。 我如何能: 是否将“删除光标处的字符”功能绑定 到“删除键盘”按钮?(Control-D的行为类似于我期望的“删除”按钮,并且我尝试使用别名的尝试均未成功且可能很幼稚。) 将“ 移至行首 ”功能绑定到主键盘按钮?(控件A现在正在执行此操作,但我希望Home可以执行此操作。) 将“ 移至行尾 ”功能绑定到“结束 ”键盘按钮?(控件E现在执行此操作,但我想结束此操作。) 最终更新? 我偶然发现了一些行之有效的方法,但我不十分清楚为什么。这有效: bind '^[[3'=prefix-2 bind '^[[3~'=delete-char-forward 根据http://www.qnx.com/developers/docs/6.3.2/neutrino/utilities/k/ksh.html#bind, prefix-2 Key binding: ^X, ^[[ Introduces a 2-character command sequence. 所以我更新的问题是为什么我需要为此使用prefix-2?请为我翻译,以便我能理解,因此我不必再为此烦人了。 旧工作流程 更新 事实证明QNX中的ESC是^[。使用命令,bind '^[[3~'='delete-char-backward'我能够使光标用覆盖光标下的字符~。至少这是一些进步-我现在知道如何为Shell 拼写Delete Key。我在网上看到的大多数内容都说Delete键是^?,但是这似乎对我不起作用。另外,我要提一下我正在通过PuTTy访问此文件。 我不明白,因为Control D会执行我希望删除键执行的操作。我试图eot-or-delete再次将其绑定无济于事。 这应该很简单,对吧? 更新2: bind | grep prefix ^X = prefix-2 ^[ = …

3
防止SIGINT传播到父进程
考虑到以下情况:父子程序(可以是C ++程序或Shell脚本)执行子Shell脚本,当我们在执行子Shell脚本时按Control + C(或配置为INTR的任何字符)时, SIGINT发送到前台进程组中的所有进程。这包括父进程。 资料来源:POSIX.1-2008 XBD第11.1.9节 有没有办法覆盖此默认行为?CHILD进程独自处理信号而没有传播给父进程吗? 参考:堆栈溢出后-子进程中断时父进程未完成(TRAP INT)

1
ksh93这么快吗?
因此,总的来说,我倾向于寻找sed文本处理工具,尤其是大文件,并且通常避免在shell本身中做这些事情。 我认为,这可能会改变。我在四处闲逛,man ksh我注意到了这一点: <#pattern Seeks forward to the beginning of the next line containing pattern. <##pattern The same as <# except that the por‐ tion of the file that is skipped is copied to standard output. 对现实世界的有用性表示怀疑,我决定尝试一下。我做了: seq -s'foo bar ' 1000000 >file ...对于一百万行数据如下所示: 1foo bar ... 999999foo bar 1000000 …



3
case +如何在大小写语法中实现等于或小于或等于
我的目标是使用(仅使用case+ esac)验证数字范围,然后打印该范围。因此,例如: 如果数字介于0到80之间,请打印 >=0<=80 如果数字介于81到100之间,则打印 >=81<=100 等等 >=0<=90仅当数字介于0和9之间时,下面的脚本问题才会打印。如何修复脚本,以便根据数字范围打印正确的输出? #!/bin/ksh read number case $number in [0-80]) echo ">=0<=80";; [81-100]) echo ">=81<=100";; [101-120]) echo ">=101<=120";; [121-300]) echo ">=121<=300";; esac

3
awk +从第一行开始打印行,直到匹配单词
我想从文件中打印所有行,直到匹配单词,然后建议如何使用awk进行打印 例如 我想打印所有行直到PPP字 备注第一行应与AAA区分(任何字) cat file.txt AAA ( the first line/word chuld be any word !!!!! ) BBB JJJ OOO 345 211 BBB OOO OOO PPP MMM ((( &&& 所以我需要得到这个 AAA BBB JJJ OOO 345 211 BBB OOO OOO PPP 其他示例(要打印到KJGFGHJ) cat file.txt1 HG KJGFGHJ KKKK 所以我需要 HG KJGFGHJ
8 linux  bash  awk  ksh 

2
通过排除第二个和第三个文件中的标头,将三个文件合并到一个主文件中
我有三个文件,行数为n,如下所示 sample1.txt ------------------------------ Date Time Name ------------------------------ 2013/10/12 12:09:09 Krish 2013/10/12 13:12:01 Ramb 2013/10/12 15:28:39 Likha 2013/10/12 15:56:12 Mat . . . Sample2.txt ------------------------------ Date Time Name ------------------------------ 2013/10/12 11:19:21 Jack 2013/10/12 12:11:09 Rob 2013/10/12 15:45:12 Rick 2013/10/12 22:11:10 Phil . . . Sample3.txt ------------------------------ Date Time Name ------------------------------ 2013/10/12 …

3
可以将AIX上的ksh配置为使用Tab键完成文件名吗?
我有一些AIX 7服务器,这些服务器仅限于我可以安装的软件,并且想知道是否可以ksh使用tab键在shell promot上完成文件名。 手册页中的ksh很少,我看不到这里涉及到任何相关问题。由于大多数用户都使用ksh,因此我不愿意将shell转换为bash,但是我想这很容易。 最初,我使用腻子/ ssh从PC登录,一旦X11转发将流量带回PC上的Hummingbird Exceed,大部分工作就从xterm进行。 是否可以通过按TAB键bos.rte.shell将AIX 7.1 附带的/ usr / bin / ksh 配置为触发文件名完成(通常是通过按ESC + \来触发)?
8 ksh  aix 

1
Korn Shell:结束,pgup,pgdown和删除键不起作用
所以基本上我End,Pageup/ Pagedown和Delete关键不在ksh93的工作。顺便说一下,我正在运行FreeBSD。 我的箭头键正常工作,我的home键也正常工作。 当我把它放在我的那些键 .kshrc set -o emacs 我已尝试通过将此操作放入我的计算机中来执行此操作.kshrc。使End关键工作。 alias __Y=`echo "\005"` # end = ^e = end of line 我打开vim,然后按Ctrlv并输入005。并且^E出现了。仍然没有任何效果。 任何人都知道要获得那些关键工作吗? 另外,每当我按这些键时,它都会打印出一个~。我也知道我可以使用Ctrld或Ctrla,但我不想使用这些。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.