有许多shell命令,如
ls,cd,cat等。
在编写这些命令时使用什么编程语言?它们是如何编译的?
我的理解是:
Shell is a program which takes command; ** does this mean that it interprets those commands(like ls is interpreted by shell program)?**
还有一个问题,Shell程序是用什么语言编写的?
我有一个yaml文件和一个具有以下逻辑的curl请求的shell脚本。我需要获取shell脚本的输出,并将其放入yaml数据值中。
例如: shell脚本逻辑:
servers=`curl test.com/servers`
for a in servers; do
val=`curl $a/number`
if [$val == 0]
output=`curl $a/ip`
done
echo $output
如果$output的值是编程,那么我需要test.yaml:
name: test
config: $get_output_value_from_shell #co
请考虑:
cd ~
cd $HOME
我认为第一个命令可能是第二个命令的糖分语法,而第二个命令则不那么抽象。
为了演示命令如何对编程新手变得越来越抽象(在解释什么是抽象的上下文中),专注于shell,我问:如何将非含糖的语法shell (Bash)命令转换为“较低”类型的代码,例如程序集,甚至机器代码(或者任何介于两者之间的代码,比如cd $HOME )?我可以用什么软件来实现这个目标,也许在shell中,来演示一个计算机命令是如何从简单到复杂的?
我在/home/somedir/subdir/中有很多文件,我正试图通过编程将它们全部移动到/home/somedir。
现在我有一个:
subprocess.call(["mv", "/home/somedir/subdir/*", "somedir/"])
但这给了我一个错误:
mv: cannot stat `/home/somedir/subdir/*': No such file or directory
我知道它确实存在,因为当我使用脚本使用的完全相同的命令手动键入mv命令时,它工作得非常好。