① Ubuntu里怎么运行脚本
1、点击栏一个终端,或者是右键把终端打开了。
② ubuntu中shell脚本怎么写
jdk源里有
脚本就chmod
755
XX
sudo
./XXX
ubuntu下最好不要用sh
XX来运行脚本
ubuntu默认的system
shell为dash,只有严格符合posix标准的脚本才能用sh
XX来运行
否则用bash
XX或./XXX比较好
③ 帮忙写个linux(ubuntu)下程序自动重启的脚本
你好!~我写了一个!~你可以试试,内存只知道查询使用百分比,你可以按照你的总内存乘一下,把变量PRO换成你的fcitx,SIZE换成你算出来的内存大小,kill下再写一行你的程序启动的命令(我没用过你那个软件,不知道怎么启动),应该就可以了。水平有限,欢迎指出不足
#!/bin/bash
#
PRO="pro"
MEM=$(ps aux | grep pro | grep -v 'grep' | awk '{print $4}')
PID=$(ps aux | grep pro | grep -v 'grep' | awk '{print $2}')
declare -i SIZE=8
if [[ $MEM > $SIZE ]] ; then
kill -9 $PID
fi
④ 如何用shell脚本实现ubuntu用户自动登录
安装
CentOS下安装命令很简单,如下
sudo yum install expect
至于Mac用户,可以通过homebrew安装(需要先安装homebrew,请自行Google)
brew install expect
测试脚本
我们写一个简单的脚本实现scp拷贝文件,在脚本里配置密码,保存为scp.exp如下
#!/usr/bin/expect
set timeout 20
if { [llength $argv] < 2} {
puts "Usage:"
puts "$argv0 local_file remote_path"
exit 1
}
set local_file [lindex $argv 0]
set remote_path [lindex $argv 1]
set passwd your_passwd
set passwderror 0
spawn scp $local_file $remote_path
expect {
"*assword:*" {
if { $passwderror == 1 } {
puts "passwd is error"
exit 2
}
set timeout 1000
set passwderror 1
send "$passwd\r"
exp_continue
}
"*es/no)?*" {
send "yes\r"
exp_continue
}
timeout {
puts "connect is timeout"
exit 3
}
}
注意,第一行很重要,通常我们的脚本里第一行是#!/bin/bash,而这里是你机器上expect程序的路径,说明这段脚本是由expect来解释执行的,而不是由bash解释执行,所以代码的语法和shell脚本也是不一样的,其中set passwd your_passwd设置成你自己的密码,然后执行如下命令
./scp.exp ./local_file user@host:/xx/yy/
执行前确保scp.exp有执行权限,第一个参数为你本地文件,第二个为远程主机的目录,运行脚本如果报错“connect is timeout”,可以把超时设长一点,第二行set timeout 20可以设置超时时间,单位是秒。脚本执行效果如下
还能做什么
细心的同学一定发现了,其实expect提供的是和终端的一种交互机制,输入密码只是其中一种应用形式,只要是在终端阻塞需要输入时,都可以通过expect脚本完成自动输入,比如前面脚本里配置了两种交互场景,一种是终端提示"password:"时输入密码,还有一种是提示"yes/no)?"时输入“yes”,如果和远程主机是第一次建立连接,执行scp.exp脚本效果是这样的
所以我们可以根据终端的提示来配置输入命令,这样就能达到了自动化的效果。至于处理其它交互场景,只需要照着上面的脚本依葫芦画瓢就行了
⑤ ubuntu shell脚本的指令问题
如果说是 declare 命令不能用,那原因是由于你用的不是bash.如果是其他命令(你最好列出来具体的命令名字),要么是由于你没有使用和《鸟哥》里所使用的同样的shell,要么就是你的系统里没有安装对应的软件。
比方说,有的命令是shell自带的命令,如declare, let 等,如果你发现不能用,那是由于使用的shell 不同或者版本不同。
有的命令不是shell自带命令,而是系统中装的一些工具软件, 比如 find, tar, grep 等等,这种类型的命令数量远大于shell自带命令,在ubuntu默认安装中,很可能有一些没有安装,需要你自己去装。
所以具体你缺什么命令,不一定是shell的问题,也可能是你没有安装对应软件包。
最后,建议你还是用bash,毕竟是最流行的shell,大多数人,大多数教程,都讲得是它,所以不建议你初学时用其他shell,等对linux shell有一定了解后,再换到自己喜欢用的shell会比较合适。
⑥ 在ubuntu的终端中运行脚本文件的问题
.sh后缀是无关紧要的东西,linux的文件是不根据扩展名来判断文件类型的,是否有.sh后缀完全不能说明该文件是否为脚本文件,只是用.sh后缀向用户表示一下这是一个shell脚本。
linux下定位一个文件需要该文件完整文件名。该文件然来是什么名字就敲什么名字,可以通过tab键自动补全。
“bash: /usr/local/bin/XXX.sh:csh:损坏的解释器: 没有该文件或目录”
至于报错的问题,需要在脚本的第一行写上完整的路径
这个路径可以用命令which csh得到
⑦ ubuntu shell 脚本 内容意思是什么啊
补充和修正楼上的:
while :
-------------- :表示空指令,相当于 while true,一直循环
if ; then
--------------这里条件可以为空吗?我也没见过。
sleep 10
--------------暂停10秒
==============================================================
那条件就是:上面的ping指令执行失败,即网断。
$? 表示上一条命令的执行结果,0表示成功,其他值表示失败。
所以 if 语句这样写:
if [ $? -ne 0 ]; then
kill -9 `pidof mystar`
./mystar &
fi
网断的情况下就强制杀掉 mystar 进程然后将它重新启动。
⑧ ubuntu 下执行shell脚本的问题
诶!你还要去好好去玩一下Linux(不要用图形系统),你问的这些问题,真不好解释
1,chmod +x test.sh:将test.sh变成可执行权限。
2,test.sh 第一行有"#!/bin/sh” 告诉解释器在什么位置。
3,第一步test.sh变成可执行了,./test.sh(运行当前目录下一个可执行文件,这是一个shell脚本,需要解释器,如果有"#!/bin/sh”通过sh解释,如果没有会报错没这个命令)。
4,./test.sh(第三步我以解释什么意思);运行test.sh(将同过path路径去找这个命令,显然这个tesh.sh这个文件不在你path路径下,你怎么能运行呢)。
5,sh test.sh(sh在/bin目录下也就是已经假如path路径,用sh命令解释你这个脚本)
⑨ ubuntu运行放在桌面的shell脚本
你得先进入桌面文件夹,或者指定脚本所在位置:
cd~/桌面
chmod+x1.sh
./1.sh
或者:
chmod+x~/桌面/1.sh
~/桌面/1.sh
⑩ ubuntu 脚本运行权限
先用ll filename命令查看下文件权限,还有就是要保证你的脚本是在ext格式的磁盘里,不是在windows类型的格式里