我stty, not a typewritter在hpux上看到消息(尽管有交互式终端检查?),我猜这些是由于我的.kshrc文件中的stty行:
case $- in
*i* )
stty hupcl ixon ixoff
stty erase '^?' kill '^U' intr '^C' eof '^D' susp '^Z'
;;
esac
Run Code Online (Sandbox Code Playgroud)
两个问题:
1)我知道擦除线为什么存在,因为没有它就没有退格.我继承了这些.kshrc行,但不知道他们做了什么.
有人知道hupcl ixon ixoff线的意义吗?stty手册页不是特别有启发性:
hupcl (-hupcl) Hang up (do not hang up) modem connection on
last close.
ixon (-ixon) Enable (disable) START/STOP output control.
Output is stopped by sending an ASCII DC3 and
started by sending an ASCII DC1.
ixoff (-ixoff) Request that the system send (not send)
START/STOP characters when …Run Code Online (Sandbox Code Playgroud) 当脚本由ksh提供时,脚本如何确定它的路径?即
$ ksh ". foo.sh"
Run Code Online (Sandbox Code Playgroud)
我已经看到在BASH上发布的非常好的方法在stackoverflow和其他地方发布但尚未找到ksh方法.
使用"$ 0"不起作用.这只是指"ksh".
更新:我尝试使用"history"命令,但是不知道当前脚本之外的历史记录.
$ cat k.ksh
#!/bin/ksh
. j.ksh
$ cat j.ksh
#!/bin/ksh
a=$(history | tail -1)
echo $a
$ ./k.ksh
270 ./k.ksh
Run Code Online (Sandbox Code Playgroud)
我希望它回显"*./j.ksh".
#!/bin/ksh
#########################
for i in {1..30} ;do
echo $i
done
Run Code Online (Sandbox Code Playgroud)
输出是:
{1..30}
Run Code Online (Sandbox Code Playgroud)
我的代码有什么问题?
QNX(Neutrino 6.5.0)使用ksh的开源实现作为其shell.许多提供的脚本(包括系统启动脚本)都使用诸如的结构
if ! test /dev/slog -ef /dev/slog; then
# do something
fi
Run Code Online (Sandbox Code Playgroud)
检查文件系统中是否存在资源管理器.我搜索过,只能找到非常严厉的解释,-ef检查两个参数是否实际上是同一个文件.由于指定的文件名是相同的,它似乎只是减少到检查文件是否存在.
我检查过的行为test -a和test -e(似乎根据我读过的各种文档检查任何类型文件的文件存在),它们似乎也有效.
在-ef和-a/ 之间执行的检查是否有任何区别-e?是否使用-ef某种尝试来防止文件存在时的竞争条件?
没有ksh命令我无法执行我的KornShell(ksh)脚本.我包含#!/bin/ksh在脚本的第一行,但是当我尝试仅按名称执行它时,它说没有这样的文件或目录.有人能帮我吗?
我知道要调试脚本我可以发出命令
set -x
Run Code Online (Sandbox Code Playgroud)
在第一行。问题在于,当脚本启动其他一些脚本时,它们不会继承此设置。所以我的问题是是否有可能为 shell 和所有子 shell 或某些脚本和它启动的所有脚本全局设置这个标志?
unix的新手,学习谈话和走路吧.我正在.ksh中编写一个脚本,并要求发送带有消息的邮件.目前在我的脚本中使用此命令:
mailx -s"File not found" abc@def.com
Run Code Online (Sandbox Code Playgroud)
此命令可帮助我拥有主题和收件人姓名.我的问题是如何与它一起写一条消息.因为每次我运行脚本它暂停并要求我输入消息然后执行,我想预先包含消息,以便脚本不会暂停.
我们服务器上的某个人运行sed -i 's/$var >> $var2/$var > $var2/ * 更改插入以覆盖公共目录中的某些bash脚本.没什么大不了的,它首先经过测试grep,它返回了预期的结果,只有他的文件会被触及.
他运行了脚本,现在文件夹中1400个文件的1200个文件有一个新的修改日期,但据我们所知,只有他的少量文件实际上已被更改.
$sed正则表达式中的一些尾随空格或完全出乎意料的东西)?我有个问题.
当我输入时,我不明白为什么
echo "`date -d 20121231 +"%B
Run Code Online (Sandbox Code Playgroud)
它执行没有错误:
December
Run Code Online (Sandbox Code Playgroud)
为什么它在开幕时成功执行
`
最后还没结束?它适用于Korn Shell 88和93.
我想在一行中将以下变量设置为相同的值
Example: export A=B=C=20
Run Code Online (Sandbox Code Playgroud)
'bash'中有一个语法,但我怎样才能在ksh中完成上述操作?