首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Alias执行代码而不是创建别名

Alias执行代码而不是创建别名
EN

Stack Overflow用户
提问于 2019-09-17 06:05:52
回答 1查看 48关注 0票数 0

在我的~/.bashrc文件中,我定义了以下别名:alias bwapp=service apache2 start;service mysql start;firefox http://localhost/bWAPP/bWAPP/portal.php

然后我重新启动了我的计算机并启动了终端,希望能够运行bwapp并启动门户网站,但我得到的却是:

代码语言:javascript
复制
bash: alias: apache2: not found
bash: alias: start: not found
bash: service: command not found
Reading profile /etc/firejail/firefox.profile
Reading profile /etc/firejail/firefox-common.profile
Reading profile /etc/firejail/disable-common.inc
Reading profile /etc/firejail/disable-devel.inc
Reading profile /etc/firejail/disable-interpreters.inc
Reading profile /etc/firejail/disable-programs.inc
Reading profile /etc/firejail/whitelist-common.inc
Reading profile /etc/firejail/whitelist-var-common.inc
Parent pid 2913, child pid 2914
Warning: skipping pango for private /etc
Warning: skipping asound.conf for private /etc
Warning: skipping pki for private /etc
Warning: skipping crypto-policies for private /etc
Warning fcopy: skipping /etc/alternatives/fakeroot.sv.1.gz, cannot find inode
Warning fcopy: skipping /etc/alternatives/faked.sv.1.gz, cannot find inode
Private /etc installed in 95.44 ms
Post-exec seccomp protector enabled
Seccomp list in: @clock,@cpu-emulation,@debug,@module,@obsolete,@raw-io,@reboot,@resources,@swap,acct,add_key,bpf,fanotify_init,io_cancel,io_destroy,io_getevents,io_setup,io_submit,ioprio_set,kcmp,keyctl,mount,name_to_handle_at,nfsservctl,ni_syscall,open_by_handle_at,personality,pivot_root,process_vm_readv,ptrace,remap_file_pages,request_key,setdomainname,sethostname,syslog,umount,umount2,userfaultfd,vhangup,vmsplice, check list: @default-keep, prelist: adjtimex,clock_adjtime,clock_settime,settimeofday,modify_ldt,lookup_dcookie,perf_event_open,process_vm_writev,delete_module,finit_module,init_module,_sysctl,afs_syscall,create_module,get_kernel_syms,getpmsg,putpmsg,query_module,security,sysfs,tuxcall,uselib,ustat,vserver,ioperm,iopl,kexec_load,kexec_file_load,reboot,set_mempolicy,migrate_pages,move_pages,mbind,swapon,swapoff,acct,add_key,bpf,fanotify_init,io_cancel,io_destroy,io_getevents,io_setup,io_submit,ioprio_set,kcmp,keyctl,mount,name_to_handle_at,nfsservctl,open_by_handle_at,personality,pivot_root,process_vm_readv,ptrace,remap_file_pages,request_key,setdomainname,sethostname,syslog,umount2,userfaultfd,vhangup,vmsplice,
Child process initialized in 366.92 ms

Parent is shutting down, bye...
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-17 06:25:55

如果别名包含空格、分号、竖线等,则必须用引号将其引起来,例如:

代码语言:javascript
复制
alias ls='ls --color'

如果不加引号(alias ls=ls --color),它将在空格上换行,因此alias将创建一个别名ls=ls,然后尝试查找一个名为--color的别名,该别名并不存在,因此您得到的是bash: alias: --color: not found

在本例中,别名还包含未加引号的分号,分号将结束当前命令,因此service ...提供bash: service: command not foundfirefox ...提供其余输出。

但最终这应该是一个函数或脚本,而不是别名。请参阅Unix和Linux上的In Bash, when to alias, when to script, and when to write a function?。就我个人而言,我会使用一个脚本:

代码语言:javascript
复制
#!/bin/bash

service apache2 start
service mysql start
firefox http://localhost/bWAPP/bWAPP/portal.php
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57964954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档