0 bash ksh shell-script conversion
由于这两个ksh和bash是基于sh很多的Korn Shell脚本(KSH)将简称为伯恩-再次Shell脚本(bash)的一次家当和文件扩展名被改变运行,
而你调用$ bash script.bash而不是$ ksh script.ksh.
我有一个基本脚本来替换名为“files”的目录中出现的任何 ksh 并更改脚本的文件扩展名。
#!/bin/bash/
#replace instances
find ./files -type f - exec sed -i.bak "s/ksh/bash/g" {} \;
#Change extensions
for f in ./files/*.ksh;
do mv "$f" "./files/""$(basename "$f" .ksh).bash"
done
#Clean up
rm ./files/*.bak
Run Code Online (Sandbox Code Playgroud)
该脚本可以工作并执行上述操作,但是是否足以将任何 ksh 脚本转换为 bash,或者是否存在我未考虑的条件?
该脚本并没有真正做任何有用的事情。如果您明确使用 bash 运行,则扩展名无关紧要,并且将忽略 shebang 行。如果您只是运行,您可以获得与您的脚本完全相同的内容:
bash script.ksh
Run Code Online (Sandbox Code Playgroud)
问题是语法上的差异。这就是您需要修复的,否则,只需使用 bash 运行脚本并完成它。
| 归档时间: |
|
| 查看次数: |
7170 次 |
| 最近记录: |