簡體   English   中英

在Linux Shell腳本中使用多個命令解釋器

[英]using multiple command interpreters in a linux shell script

我想使用一個shell腳本來執行一堆命令。 其中一些命令包括:​​scp,cd,tar,date,expect,spawn。

當我聲明#!/ bin / sh或#!/ bin / bash時,所有的期望命令都不起作用-這是可以理解的。 當我聲明#!/ usr / bin / expect -f時,cd,tar,date不起作用-我想這也是可以預期的(無雙關語)。

是否可以使用單個解釋器使用所有這些命令,或者我可以在此過程中聲明另一個命令? 我陷入了子彈,但沒有成功。

您可以通過shell here-doc提供命令以expect

#!/bin/sh
# shell code....
expect <<EOS
# expect code...
EOS
# back to shell code...

實際上,如果您在預期下運行,則可以使用所有Tcl命令,因此:

  • “ cd”可以使用,因為它是內置的
  • 不需要“日期”,因為您可以使用Tcl clock命令,例如。 clock format [clock seconds]
  • 可以使用exec運行“ tar”和其他外部命令。 exec tar cf stuff.tar file1 file2 file3

數據和控件構造與sh或bash不同,但是一旦習慣了它們,它們的功能就會更加強大。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM