我正在寻找在我的系统上安装的shell脚本文件,但是find不起作用:
$ find /usr -name *.sh
Run Code Online (Sandbox Code Playgroud)
但我知道那里有很多脚本.例如:
$ ls /usr/local/lib/*.sh
/usr/local/lib/tclConfig.sh
/usr/local/lib/tkConfig.sh
Run Code Online (Sandbox Code Playgroud)
为什么找不到工作?
我是Unix新手.目前,我被要求了解KornShell(ksh)和Bash shell.有人可以给我一个关于这两个的简短概述吗?
术语" shell "是" 终端 "的同义词吗?
我知道我可以在线阅读有关这两个文件.但我相信经验丰富的Unix程序员的概述将帮助我更好地理解.
当我尝试在shell脚本中使用ssh命令时,命令就在那里.你有一个如何在shell脚本中使用ssh的例子吗?
我有一个字符串,我想删除标点符号.
我开始了
sed 's/[[:punct:]]/ /g'
Run Code Online (Sandbox Code Playgroud)
但是我在HP-UX上遇到的问题一直不喜欢,有时我会得到一个0,而且$在我的字符串中的任何内容都会消失.所以我决定尝试手动完成.
我有以下代码,它适用于我感兴趣的所有标点符号,除了我似乎无法添加方括号"[]"到我的sed与其他任何东西,否则它不会替换任何东西,我不会得到一个错误,所以我不知道该解决什么问题.
无论如何,这是我目前拥有并想要添加[]的内容.
sed 's/[-=+|~!@#\$%^&*(){}:;'\'''\"''\`''\.''\/''\\']/ /g'
Run Code Online (Sandbox Code Playgroud)
顺便说一下,我在Solaris,Redhat和HP上使用KSH
考虑一个ASCII文本文件(假设它包含非shell脚本语言的代码):
Text_File.msh:
spool on to '$LOG_FILE_PATH/logfile.log';
login 'username' 'password';
....
Run Code Online (Sandbox Code Playgroud)
现在,如果这是一个shell脚本,我可以运行它,$ sh Text_File.mshshell将自动扩展变量.我想要做的是让shell扩展这些变量,然后创建一个新文件Text_File_expanded.msh,如下所示:
Text_File_expanded.msh:
spool on to '/expanded/path/of/the/log/file/../logfile.log';
login 'username' 'password';
....
Run Code Online (Sandbox Code Playgroud)
考虑:
$ a=123
$ echo "$a"
123
Run Code Online (Sandbox Code Playgroud)
从技术上讲,这应该可以解决问题:
$ echo "`cat Text_File.msh`" > Text_File_expanded.msh
Run Code Online (Sandbox Code Playgroud)
...但它不能按预期工作,输出文件虽然与源相同.
所以我不确定如何实现这一点.我的目标是让我更容易维护嵌入在我的非shell脚本中的目录路径.这些脚本不能包含任何UNIX代码,因为它不是由UNIX shell编译的.
我需要检查变量是否具有以指定子字符串开头的字符串值.
在Python中它将是这样的:
foo = 'abcdef'
if foo.startswith('abc'):
print 'Success'
Run Code Online (Sandbox Code Playgroud)
检查Ksh中strig是否$foo以子字符串开头的最明确方法是什么bar?
一般我们使用
cd .. 转到父目录
cd ../../转到父父目录.和
cd ../../../../../ 为第五个父目录.
这有什么简化方法吗?
我使用的shell是ksh.
使用具有相同输入的相同排序命令会在不同的计算机上生成不同的结果.我该如何解决这个问题?
如何将BASH中的字符串转换为bash中的数组!
我有一个字符串str,其中包含"title1 title2 title3 title4 title5" (空格分隔标题)
我希望将str修改为一个数组,该数组将在每个索引中存储每个标题.
使用scp定期将文件从1个unix服务器复制到另一个服务器并执行某些操作.要快速执行此操作,我希望使用一个unix脚本来执行scp并输入完成scp所需的密码.
我已经尝试了expect命令通过unix命令行发送密码,但到目前为止无法实现这一点.
示例命令
scp ./abc.txt hostname/abc.txt
expect "*password:*"
send "mypassword\r"
Run Code Online (Sandbox Code Playgroud)
我收到这些错误:
couldn't read file "password: ": no such file or directory
myscript.sh[5]: send: not found [No such file or directory]
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?