shell 终端自动运行代码

shell 终端自动运行代码,第1张

1写个脚本(文本写或者vi这类编辑器都可以)

文本信息类似

#!/bin/sh
cd  #自己添加路径
  #你要运行的代码

2对脚本赋予执行权限即可(可以使用chmod +x scipt_name(脚本名)更改权限,也可以在图形界面更改文件属性赋予执行权限。)

3最后将脚本放在你有权限访问执行的地方(如你的桌面),图形界面下双击开始运行程序。

主要有以下几种方法:
1、将SQL语句直接嵌入到shell脚本文件中
代码如下:
--演示环境
[root@SZDB ~]# more /etc/issue
CentOS release 59 (Final)
Kernel \r on an \m
root@localhost[(none)]> show variables like 'version';
+---------------+------------+
| Variable_name | Value |
+---------------+------------+
| version | 5612-log |
+---------------+------------+

[root@SZDB ~]# more shell_call_sql1sh
#!/bin/bash
# Define log
TIMESTAMP=`date +%Y%m%d%H%M%S`
LOG=call_sql_${TIMESTAMP}log
echo "Start execute sql statement at `date`" >>${LOG}

# execute sql stat
mysql -uroot -p123456 -e "
tee /tmp/templog
drop database if exists tempdb;
create database tempdb;
use tempdb
create table if not exists tb_tmp(id smallint,val varchar(20));
insert into tb_tmp values (1,'jack'),(2,'robin'),(3,'mark');
select from tb_tmp;
notee
quit"

echo -e "\n">>${LOG}
echo "below is output result">>${LOG}
cat /tmp/templog>>${LOG}
echo "script executed successful">>${LOG}
exit;

[root@SZDB ~]# /shell_call_sql1sh
Logging to file '/tmp/templog'
+------+-------+
| id | val |
+------+-------+
| 1 | jack |
| 2 | robin |
| 3 | mark |
+------+-------+
Outfile disabled
2、命令行调用单独的SQL文件
代码如下:
[root@SZDB ~]# more tempsql
tee /tmp/templog
drop database if exists tempdb;
create database tempdb;
use tempdb
create table if not exists tb_tmp(id smallint,val varchar(20));
insert into tb_tmp values (1,'jack'),(2,'robin'),(3,'mark');
select from tb_tmp;
notee
[root@SZDB ~]# mysql -uroot -p123456 -e "source /root/tempsql"
Logging to file '/tmp/templog'
+------+-------+
| id | val |
+------+-------+
| 1 | jack |
| 2 | robin |
| 3 | mark |
+------+-------+
Outfile disabled
3、使用管道符调用SQL文件
代码如下:
[root@SZDB ~]# mysql -uroot -p123456 </root/tempsql
Logging to file '/tmp/templog'
id val
1 jack
2 robin
3 mark
Outfile disabled
#使用管道符调用SQL文件以及输出日志
[root@SZDB ~]# mysql -uroot -p123456 </root/tempsql >/tmp/templog
[root@SZDB ~]# more /tmp/templog
Logging to file '/tmp/templog'
id val
1 jack
2 robin
3 mark
Outfile disabled
4、shell脚本中MySQL提示符下调用SQL
代码如下:
[root@SZDB ~]# more shell_call_sql2sh
#!/bin/bash
mysql -uroot -p123456 <<EOF
source /root/tempsql;
select current_date();
delete from tempdbtb_tmp where id=3;
select from tempdbtb_tmp where id=2;
EOF
exit;
[root@SZDB ~]# /shell_call_sql2sh
Logging to file '/tmp/templog'
id val
1 jack
2 robin
3 mark
Outfile disabled
current_date()
2014-10-14
id val
2 robin
5、shell脚本中变量输入与输出
代码如下:
[root@SZDB ~]# more shell_call_sql3sh
#!/bin/bash
cmd="select count() from tempdbtb_tmp"
cnt=$(mysql -uroot -p123456 -s -e "${cmd}")
echo "Current count is : ${cnt}"
exit
[root@SZDB ~]# /shell_call_sql3sh
Warning: Using a password on the command line interface can be insecure
Current count is : 3

[root@SZDB ~]# echo "select count() from tempdbtb_tmp"|mysql -uroot -p123456 -s
3

[root@SZDB ~]# more shell_call_sql4sh
#!/bin/bash
id=1
cmd="select count() from tempdbtb_tmp where id=${id}"
cnt=$(mysql -uroot -p123456 -s -e "${cmd}")
echo "Current count is : ${cnt}"
exit

[root@SZDB ~]# /shell_call_sql4sh
Current count is : 1

然后给脚本文件运行权限,一般755就OK,如果完全是自己的私人电脑,也不做服务器什么的,给777的权限问题也不大(具体权限含义参考chmod指令的介绍,就不赘述了):
chmod 755 /py
然后执行。
如果在脚本内容的开头已经给出了类似于如下的注释:
#!/usr/bin/env python
那就可以直接在终端里运行:
/py
如果没有这个注释
就在终端中执行:
python /py
如果是有图形界面的脚本
在前面的chmod之后,直接双击(KDE桌面是单击)文件来执行即可

如果是使用Ubuntu的话,你可以利用CTRL+ALT+T组合键打开终端。当然你也可以使用超级键(Windows键)打开Dash,搜索“TERM”,然后点击“Term”图标来打开终端窗口。
对于其他的桌面环境来说,例如XFCE、KDE、LXDE、Cinnamon以及MATE,你可以在菜单中找到终端。有些环境会在停靠栏或者面板上面包含终端图标。
通常情况下,你可以在终端里面直接输入应用程序名来启动一个应用程序。比如说,你可以通过输入“firefox”来启动Firefox。
在终端启动应用程序的好处是,你可以包含一些额外的参数。
例如,你可以通过下列命令来打开一个Firefox浏览窗口,然后利用默认的搜索引擎搜索相关信息:
firefox -search "linuxcn"
你可能会注意到,如果你启动Firefox,程序打开以后,回到了终端窗口控制,这就意味着你可以继续在终端进行工作。
通常情况下,如果你在终端启动了应用程序,控制会切换到新启动的应用程序,只有程序被关闭以后才会重新切换到终端控制。这是因为你在前台启动了这个程序。
如果要在Linux终端打开应用程序并且返回终端控制,那么你需要将应用程序启动为后台进程。
和下面所列的命令一样,我们可以通过增加一个(&)符号,将应用程序在后台启动。
libreoffice &
译者注:如果需要加参数的话,记得把&符号放在最后。
译者注:一般情况下,关闭终端时,在这个终端启动的后台程序也会被终止,要使终端关闭以后,后台程序依然保持执行可以使用下列命令
nohup command [arg] &
如果应用程序目录没有安装在PATH变量包含的目录里面的话,我们就没有办法直接通过应用程序名来启动程序,必须输入应用程序的整个路径来启动它。
/path/to/yourprogram &
如果你不确定程序输入哪个Linux目录结构的话,可以使用find或者location命令来定位它。
可以输入下列符号来找到一个文件:
find /path/to/start/from -name programname
例如,你可以输入下列命令来找到Firefox:
find / -name firefox
命令运行的结果会嗖的一下输出一大堆,别担心,你也可以通过less或者more来进行分页查看。
find / -name firefox | more find / -name firefox | less
当find命令查找到没有权限访问的文件夹时,会报出一条拒绝访问错误,
你可以通过sudo命令来提示权限。当然,如果你没有安装sudo的话,就只能切换到一个拥有权限的用户了。
sudo find / -name firefox | more
如果你知道你要查找的文件在你的当前目录结构中,那么你可以使用点来代替斜杠:
sudo find -name firefox | more
你可能需要sudo来提升权限,也可能根本就不需要,如果这个文件在你的主目录里面,那么就不需要使用sudo。
有些应用程序则必须要提升权限才能运行,否则你就会得到一大堆拒绝访问错误,除非你使用一个具有权限的用户或者使用sudo提升权限。
这里有个小窍门。如果你运行了一个程序,但是它需要提升权限来 *** 作,输入下面命令试试:
sudo !!

这是开机自动后台启动goagent的方式,应该是差不多的。
需要运行的命令是:"python 修改为你存放goagent的路径/goagent/████py"
1终端执行下面的命令。
sudo vi /Library/LaunchDaemons/comgoagentplist
然后黏贴如下代码,并保存
<xml version="10" encoding="UTF-8">
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 10//EN"
">在苹果系统终端中编写C语言类似于在Linux平台上编写C语言代码,简单的概括为:创建C文件、用Vim编写C程序、编译C程序文件、执行编译后生成的out文件。具体来说如下:
1、$:touch Helloc //创建一个Helloc文件(本目录下)
2、$:vim Helloc //用vim编辑Helloc文件
i //打开vim后先输入i进入编辑状态
以下为vim中输入的程序
#include <stdioh>
int main()
{
printf(“Hello Mac ! \n”);
}

ESC键 //按ESC键退出编辑状态
:wq //先输入“:”,再输入“w”表示保存,最后输入“q”表示退出
3、$:gcc Helloc //编译Helloc文件,会生成可执行文件“aout”
4、$:/aout //执行aout


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/yw/13375136.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-24
下一篇 2023-07-24

发表评论

登录后才能评论

评论列表(0条)

保存